From 2a954b2a299375c090d5301f193b0fee699da6c0 Mon Sep 17 00:00:00 2001 From: Nekonico <163950752+DBNekonico@users.noreply.github.com> Date: Sun, 12 Jan 2025 18:16:03 -0800 Subject: [PATCH 1/2] bugfixed once again --- mods/biology.js | 2418 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 2171 insertions(+), 247 deletions(-) diff --git a/mods/biology.js b/mods/biology.js index 077b920c..d8a2c8e5 100644 --- a/mods/biology.js +++ b/mods/biology.js @@ -48,7 +48,7 @@ viewInfo[6] = { // Speed View viewInfo[7] = { // Illness View name: "ill", pixel: function(pixel,ctx) { - if ((elements[pixel.element].id === elements.infected_vessel.id || elements[pixel.element].id === elements.infection.id || elements[pixel.element].id === elements.cancer.id || elements[pixel.element].id === elements.plague.id || elements[pixel.element].id === elements.rotten_meat.id) || ((elements[pixel.element].isBio === true || elements[pixel.element].id === elements.digested_material.id || elements[pixel.element].id === elements.gaseous_material.id) && (pixel.speed < -5 || pixel.oxygen < 250 || pixel.nutrition < 250))) { + if ((elements[pixel.element].id === elements.infected_vessel.id || elements[pixel.element].id === elements.infection.id || elements[pixel.element].id === elements.cancer.id || elements[pixel.element].id === elements.plague.id || elements[pixel.element].id === elements.rotten_meat.id) || (elements[pixel.element].isBio === true && ((pixel.speed < -5 || pixel.oxygen < 250 || pixel.nutrition < 250) || pixel.poisoned === true))) { var a = (settings.textures !== 0) ? pixel.alpha : undefined; if (((elements[pixel.element].isGas && elements[pixel.element].glow !== false) || elements[pixel.element].glow || pixel.glow) && pixel.glow !== false) { drawPlus(ctx,pixel.color,pixel.x,pixel.y,undefined,a) @@ -116,6 +116,43 @@ behaviorRules.BCR = function() { } } +behaviorRules.ADB = function() { + if (!isEmpty(btemp.newCoords.x,btemp.newCoords.y,true)) { + // if the pixel at newCoords is the same element as the pixel, ignore + var newPixel = pixelMap[btemp.newCoords.x][btemp.newCoords.y]; + // if info.ignore exists and newPixel.element is in it + if (btemp.info.ignore && btemp.info.ignore.indexOf(newPixel.element) !== -1) { + return; + } + if (!(newPixel.element == btemp.pixel.element)) { + if (btemp.arg != null) { var args = btemp.arg.split(","); } + if (btemp.arg == null || args.indexOf(newPixel.element) !== -1) { + if (!elements[newPixel.element].hardness || Math.random() > elements[newPixel.element].hardness) { + if (elements[newPixel.element].isFood === true) { + changePixel(newPixel,"digested_material"); + newPixel.nutrition = 10; + if (pixelMap[btemp.pixel.x][btemp.pixel.y] != undefined) { + deletePixel(btemp.pixel.x,btemp.pixel.y); + } + btemp.deleted = true; + btemp.swapSpots = []; + } + else if (elements[newPixel.element].isFood != true) { + if (elements[newPixel.element].hardness < 0.5) { + deletePixel(btemp.newCoords.x,btemp.newCoords.y); + if (pixelMap[btemp.pixel.x][btemp.pixel.y] != undefined) { + deletePixel(btemp.pixel.x,btemp.pixel.y); + } + btemp.deleted = true; + btemp.swapSpots = []; + } + } + } + } + } + } + }, + elements.flesh = { color: ["#9e4839","#ba6449"], category: "structural", @@ -124,7 +161,7 @@ elements.flesh = { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -163,6 +200,9 @@ elements.flesh = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -178,6 +218,13 @@ elements.flesh = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -195,6 +242,13 @@ elements.flesh = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -212,6 +266,13 @@ elements.flesh = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -229,6 +290,13 @@ elements.flesh = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } doDefaults(pixel); @@ -252,6 +320,8 @@ elements.flesh = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, isBio: true, movable: false, @@ -285,7 +355,7 @@ elements.epidermis = { pixel.temp += 1; } doDefaults(pixel); - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -321,6 +391,9 @@ elements.epidermis = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -336,6 +409,13 @@ elements.epidermis = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -353,6 +433,13 @@ elements.epidermis = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -370,6 +457,13 @@ elements.epidermis = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -387,6 +481,13 @@ elements.epidermis = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } }, @@ -410,6 +511,8 @@ elements.epidermis = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, isBio: true, movable: false, @@ -438,7 +541,7 @@ elements.dermis = { } } doDefaults(pixel); - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -477,6 +580,9 @@ elements.dermis = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -492,6 +598,13 @@ elements.dermis = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -509,6 +622,13 @@ elements.dermis = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -526,6 +646,13 @@ elements.dermis = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -543,6 +670,13 @@ elements.dermis = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } }, @@ -566,6 +700,8 @@ elements.dermis = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, isBio: true, movable: false, @@ -599,7 +735,7 @@ elements.cloak_skin = { pixel.temp += 1; } doDefaults(pixel); - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -635,6 +771,9 @@ elements.cloak_skin = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -650,6 +789,13 @@ elements.cloak_skin = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (pixel.color != hitPixel.color) { hitPixel.color = pixel.color } @@ -675,6 +821,13 @@ elements.cloak_skin = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (pixel.color != hitPixel.color) { hitPixel.color = pixel.color } @@ -700,6 +853,13 @@ elements.cloak_skin = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (pixel.color != hitPixel.color) { hitPixel.color = pixel.color } @@ -725,6 +885,13 @@ elements.cloak_skin = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (pixel.color != hitPixel.color) { hitPixel.color = pixel.color } @@ -756,6 +923,8 @@ elements.cloak_skin = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, isBio: true, movable: false, @@ -784,7 +953,7 @@ elements.cloak_dermis = { } } doDefaults(pixel); - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -823,6 +992,9 @@ elements.cloak_dermis = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -838,6 +1010,13 @@ elements.cloak_dermis = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (pixel.color != hitPixel.color) { hitPixel.color = pixel.color } @@ -863,6 +1042,13 @@ elements.cloak_dermis = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (pixel.color != hitPixel.color) { hitPixel.color = pixel.color } @@ -888,6 +1074,13 @@ elements.cloak_dermis = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (pixel.color != hitPixel.color) { hitPixel.color = pixel.color } @@ -913,6 +1106,13 @@ elements.cloak_dermis = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (pixel.color != hitPixel.color) { hitPixel.color = pixel.color } @@ -944,6 +1144,8 @@ elements.cloak_dermis = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, isBio: true, movable: false, @@ -1243,7 +1445,7 @@ elements.hairy_skin = { pixel.temp += 1; } doDefaults(pixel); - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -1279,6 +1481,9 @@ elements.hairy_skin = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -1294,6 +1499,13 @@ elements.hairy_skin = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -1311,6 +1523,13 @@ elements.hairy_skin = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -1328,6 +1547,13 @@ elements.hairy_skin = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -1345,6 +1571,13 @@ elements.hairy_skin = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } }, @@ -1368,6 +1601,8 @@ elements.hairy_skin = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, isHair: true, isBio: true, @@ -1406,7 +1641,7 @@ elements.hair_dermis = { } } doDefaults(pixel); - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -1445,6 +1680,9 @@ elements.hair_dermis = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -1460,6 +1698,13 @@ elements.hair_dermis = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -1477,6 +1722,13 @@ elements.hair_dermis = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -1494,6 +1746,13 @@ elements.hair_dermis = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -1511,6 +1770,13 @@ elements.hair_dermis = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } }, @@ -1534,6 +1800,8 @@ elements.hair_dermis = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, isHair: true, isBio: true, @@ -1591,6 +1859,9 @@ elements.scales = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -1606,6 +1877,13 @@ elements.scales = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -1623,6 +1901,13 @@ elements.scales = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -1640,6 +1925,13 @@ elements.scales = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -1657,6 +1949,13 @@ elements.scales = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } }, @@ -1677,6 +1976,8 @@ elements.scales = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, isBio: true, movable: false, @@ -1705,7 +2006,7 @@ elements.scale_dermis = { } } doDefaults(pixel); - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -1744,6 +2045,9 @@ elements.scale_dermis = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -1759,6 +2063,13 @@ elements.scale_dermis = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -1776,6 +2087,13 @@ elements.scale_dermis = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -1793,6 +2111,13 @@ elements.scale_dermis = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -1810,6 +2135,13 @@ elements.scale_dermis = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } }, @@ -1833,6 +2165,8 @@ elements.scale_dermis = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, isBio: true, movable: false, @@ -1861,7 +2195,7 @@ elements.bug_dermis = { } } doDefaults(pixel); - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -1900,6 +2234,9 @@ elements.bug_dermis = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -1915,6 +2252,13 @@ elements.bug_dermis = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -1932,6 +2276,13 @@ elements.bug_dermis = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -1949,6 +2300,13 @@ elements.bug_dermis = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -1966,6 +2324,13 @@ elements.bug_dermis = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } }, @@ -1989,6 +2354,8 @@ elements.bug_dermis = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, isBio: true, movable: false, @@ -2017,7 +2384,7 @@ elements.amphib_dermis = { } } doDefaults(pixel); - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -2056,6 +2423,9 @@ elements.amphib_dermis = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -2071,6 +2441,13 @@ elements.amphib_dermis = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -2088,6 +2465,13 @@ elements.amphib_dermis = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -2105,6 +2489,13 @@ elements.amphib_dermis = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -2122,6 +2513,13 @@ elements.amphib_dermis = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } }, @@ -2145,6 +2543,8 @@ elements.amphib_dermis = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, isBio: true, movable: false, @@ -2158,7 +2558,7 @@ elements.acidic_flesh = { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -2203,6 +2603,9 @@ elements.acidic_flesh = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -2218,6 +2621,13 @@ elements.acidic_flesh = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -2235,6 +2645,13 @@ elements.acidic_flesh = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -2252,6 +2669,13 @@ elements.acidic_flesh = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -2269,6 +2693,13 @@ elements.acidic_flesh = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } }, @@ -2291,6 +2722,8 @@ elements.acidic_flesh = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, isBio: true, movable: false, @@ -2304,7 +2737,7 @@ elements.slimey_flesh = { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -2349,6 +2782,9 @@ elements.slimey_flesh = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -2364,6 +2800,13 @@ elements.slimey_flesh = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -2381,6 +2824,13 @@ elements.slimey_flesh = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -2398,6 +2848,13 @@ elements.slimey_flesh = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -2415,6 +2872,13 @@ elements.slimey_flesh = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } }, @@ -2437,6 +2901,8 @@ elements.slimey_flesh = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, isBio: true, movable: false, @@ -2452,7 +2918,7 @@ elements.cloak_flesh = { }, tick: function(pixel) { doDefaults(pixel); - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -2491,6 +2957,9 @@ elements.cloak_flesh = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -2506,6 +2975,13 @@ elements.cloak_flesh = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (pixel.color != hitPixel.color) { hitPixel.color = pixel.color } @@ -2531,6 +3007,13 @@ elements.cloak_flesh = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (pixel.color != hitPixel.color) { hitPixel.color = pixel.color } @@ -2556,6 +3039,13 @@ elements.cloak_flesh = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (pixel.color != hitPixel.color) { hitPixel.color = pixel.color } @@ -2581,6 +3071,13 @@ elements.cloak_flesh = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (pixel.color != hitPixel.color) { hitPixel.color = pixel.color } @@ -2612,6 +3109,8 @@ elements.cloak_flesh = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, isBio: true, movable: false, @@ -2663,6 +3162,9 @@ elements.adipose = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -2678,6 +3180,13 @@ elements.adipose = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -2695,6 +3204,13 @@ elements.adipose = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -2712,6 +3228,13 @@ elements.adipose = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -2729,6 +3252,13 @@ elements.adipose = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } }, @@ -2782,6 +3312,9 @@ elements.acid_vessel = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -2797,10 +3330,24 @@ elements.acid_vessel = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (hitPixel.speed < pixel.speed) { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } else if (isEmpty(pixel.x, pixel.y-1) && Math.random() > 0.75) { @@ -2825,10 +3372,24 @@ elements.acid_vessel = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (hitPixel.speed < pixel.speed) { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } else if (isEmpty(pixel.x, pixel.y+1) && Math.random() > 0.75) { @@ -2853,10 +3414,24 @@ elements.acid_vessel = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (hitPixel.speed < pixel.speed) { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } else if (isEmpty(pixel.x-1, pixel.y) && Math.random() > 0.75) { @@ -2881,10 +3456,24 @@ elements.acid_vessel = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (hitPixel.speed < pixel.speed) { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } else if (isEmpty(pixel.x+1, pixel.y) && Math.random() > 0.75) { @@ -2899,6 +3488,8 @@ elements.acid_vessel = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, tempHigh: 175, stateHigh: ["acid_gas","acid_gas","acid_gas","cooked_meat","cooked_meat"], @@ -2927,7 +3518,7 @@ elements.heart = { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.975 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.975 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -2966,6 +3557,9 @@ elements.heart = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -2981,6 +3575,13 @@ elements.heart = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (elements[hitPixel.element].isBlood === true && hitPixel.heartAttached === false && Math.random() > 0.5) { hitPixel.heartAttached = true } @@ -3008,6 +3609,13 @@ elements.heart = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (elements[hitPixel.element].isBlood === true && hitPixel.heartAttached === false && Math.random() > 0.5) { hitPixel.heartAttached = true } @@ -3035,6 +3643,13 @@ elements.heart = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (elements[hitPixel.element].isBlood === true && hitPixel.heartAttached === false && Math.random() > 0.5) { hitPixel.heartAttached = true } @@ -3062,6 +3677,13 @@ elements.heart = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (elements[hitPixel.element].isBlood === true && hitPixel.heartAttached === false && Math.random() > 0.5) { hitPixel.heartAttached = true } @@ -3079,6 +3701,8 @@ elements.heart = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, tempHigh: 175, stateHigh: "meat", @@ -3107,7 +3731,7 @@ elements.kidney = { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.975 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.975 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -3146,6 +3770,9 @@ elements.kidney = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -3161,6 +3788,13 @@ elements.kidney = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (hitPixel.pee < pixel.pee && elements[hitPixel.element].isKidney === true) { hitPixel.pee += 1 pixel.pee -= 1 @@ -3192,6 +3826,13 @@ elements.kidney = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (hitPixel.pee < pixel.pee && elements[hitPixel.element].isKidney === true) { hitPixel.pee += 1 pixel.pee -= 1 @@ -3223,6 +3864,13 @@ elements.kidney = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (hitPixel.pee < pixel.pee && elements[hitPixel.element].isKidney === true) { hitPixel.pee += 1 pixel.pee -= 1 @@ -3254,6 +3902,13 @@ elements.kidney = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (hitPixel.pee < pixel.pee && elements[hitPixel.element].isKidney === true) { hitPixel.pee += 1 pixel.pee -= 1 @@ -3275,10 +3930,13 @@ elements.kidney = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, pee: 0, }, renderer: function(pixel,ctx) { drawDefault(ctx,pixel); + if (!viewInfo[view].colorEffects) { return } if (pixel.pee > 0) { drawSquare(ctx,"#E9BE3C",pixel.x,pixel.y,undefined,Math.min(0.8,pixel.pee/10)); } @@ -3311,7 +3969,7 @@ elements.liver = { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.975 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.975 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -3350,6 +4008,9 @@ elements.liver = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (pixel.speed < -1 && Math.random() < (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { pixel.speed += 1 } @@ -3368,6 +4029,13 @@ elements.liver = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -3385,6 +4053,13 @@ elements.liver = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -3402,6 +4077,13 @@ elements.liver = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -3419,6 +4101,13 @@ elements.liver = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } }, @@ -3426,6 +4115,8 @@ elements.liver = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, tempHigh: 175, stateHigh: "meat", @@ -3480,6 +4171,9 @@ elements.blood_vessel = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -3507,6 +4201,13 @@ elements.blood_vessel = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) { hitPixel.heartAttached = true } @@ -3546,6 +4247,13 @@ elements.blood_vessel = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) { hitPixel.heartAttached = true } @@ -3624,6 +4332,13 @@ elements.blood_vessel = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) { hitPixel.heartAttached = true } @@ -3640,16 +4355,19 @@ elements.blood_vessel = { properties: { oxygen: 1000, nutrition: 1000, + speed: 0, + poisoned: false, + immune: false, heartAttached: false, }, tempHigh: 175, stateHigh: "meat", tempLow: -50, - stateLow: "frozen_meat", + stateLow: ["frozen_meat","blood","blood","blood"], burn: 20, burnTime: 160, - burnInto: "meat", - breakInto: "blood", + burnInto: ["meat","blood","blood","blood","blood"], + breakInto: ["meat","blood","blood","blood","blood","blood"], category: "circulation", state: "solid", density: 1250, @@ -3696,6 +4414,9 @@ elements.infected_vessel = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -3725,7 +4446,8 @@ elements.infected_vessel = { } if (elements[hitPixel.element].isBlood === true && Math.random() > 0.5) { if (Math.random() > 0.95) { - changePixel(hitPixel,"infected_vessel") + hitPixel.element = "infected_vessel" + hitPixel.color = elements.infected_vessel.color } } if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) { @@ -3769,7 +4491,8 @@ elements.infected_vessel = { } if (elements[hitPixel.element].isBlood === true && Math.random() > 0.5) { if (Math.random() > 0.95) { - changePixel(hitPixel,"infected_vessel") + hitPixel.element = "infected_vessel" + hitPixel.color = elements.infected_vessel.color } } if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) { @@ -3813,7 +4536,8 @@ elements.infected_vessel = { } if (elements[hitPixel.element].isBlood === true && Math.random() > 0.5) { if (Math.random() > 0.95) { - changePixel(hitPixel,"infected_vessel") + hitPixel.element = "infected_vessel" + hitPixel.color = elements.infected_vessel.color } } if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) { @@ -3857,7 +4581,8 @@ elements.infected_vessel = { } if (elements[hitPixel.element].isBlood === true && Math.random() > 0.5) { if (Math.random() > 0.95) { - changePixel(hitPixel,"infected_vessel") + hitPixel.element = "infected_vessel" + hitPixel.color = elements.infected_vessel.color } } if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) { @@ -3876,6 +4601,9 @@ elements.infected_vessel = { properties: { oxygen: 1000, nutrition: 1000, + speed: 0, + poisoned: false, + immune: false, heartAttached: false, }, reactions: { @@ -3902,8 +4630,8 @@ elements.white_blood_cell = { color: "#F5D7D4", behavior: [ "XX|SW:blood_vessel%1|XX", - "SW:blood_vessel%1 AND M2%10|XX|SW:blood_vessel%1 AND M2%10", - "M2|SW:blood_vessel%1 AND M1|M2", + "SW:blood_vessel%1|XX|SW:blood_vessel%1", + "XX|SW:blood_vessel%1|XX", ], hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen @@ -3925,8 +4653,12 @@ elements.white_blood_cell = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (Math.random() > 0.995 && Math.random() < (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050)) || Math.random() > 0.9995) { - changePixel(pixel,"blood_vessel"); + hitPixel.element = "blood_vessel" + hitPixel.color = elements.blood_vessel.color } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] @@ -3943,13 +4675,28 @@ elements.white_blood_cell = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (hitPixel.speed < pixel.speed) { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (elements[hitPixel.element].isBlood === true && Math.random() > 0.25) { if (elements[hitPixel.element].id === elements.infected_vessel.id) { - changePixel(hitPixel,"blood_vessel") + hitPixel.element = "blood_vessel" + hitPixel.color = elements.blood_vessel.color } } if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) { @@ -3972,13 +4719,28 @@ elements.white_blood_cell = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (hitPixel.speed < pixel.speed) { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (elements[hitPixel.element].isBlood === true && Math.random() > 0.25) { if (elements[hitPixel.element].id === elements.infected_vessel.id) { - changePixel(hitPixel,"blood_vessel") + hitPixel.element = "blood_vessel" + hitPixel.color = elements.blood_vessel.color } } if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) { @@ -4001,13 +4763,28 @@ elements.white_blood_cell = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (hitPixel.speed < pixel.speed) { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (elements[hitPixel.element].isBlood === true && Math.random() > 0.25) { if (elements[hitPixel.element].id === elements.infected_vessel.id) { - changePixel(hitPixel,"blood_vessel") + hitPixel.element = "blood_vessel" + hitPixel.color = elements.blood_vessel.color } } if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) { @@ -4030,13 +4807,28 @@ elements.white_blood_cell = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (hitPixel.speed < pixel.speed) { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (elements[hitPixel.element].isBlood === true && Math.random() > 0.25) { if (elements[hitPixel.element].id === elements.infected_vessel.id) { - changePixel(hitPixel,"blood_vessel") + hitPixel.element = "blood_vessel" + hitPixel.color = elements.blood_vessel.color } } if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) { @@ -4048,6 +4840,9 @@ elements.white_blood_cell = { properties: { oxygen: 1000, nutrition: 1000, + speed: 0, + poisoned: false, + immune: false, heartAttached: false, }, reactions: { @@ -4083,7 +4878,7 @@ elements.eye = { doHeat(pixel); doBurning(pixel); doElectricity(pixel); - if ((Math.random() > 0.895 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.895 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -4104,6 +4899,9 @@ elements.eye = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] doElectricity(hitPixel); @@ -4132,6 +4930,13 @@ elements.eye = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -4162,6 +4967,13 @@ elements.eye = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -4192,6 +5004,13 @@ elements.eye = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -4222,6 +5041,13 @@ elements.eye = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (pixel.saw === true && Math.random() > 0.8) { @@ -4263,7 +5089,7 @@ elements.olfactory_bulb = { doHeat(pixel); doBurning(pixel); doElectricity(pixel); - if ((Math.random() > 0.895 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.895 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -4284,6 +5110,9 @@ elements.olfactory_bulb = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] doElectricity(hitPixel); @@ -4455,7 +5284,7 @@ elements.taste_bud = { doHeat(pixel); doBurning(pixel); doElectricity(pixel); - if ((Math.random() > 0.895 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.895 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen-- } @@ -4476,6 +5305,9 @@ elements.taste_bud = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] doElectricity(hitPixel); @@ -4671,7 +5503,7 @@ elements.brain = { doHeat(pixel); doBurning(pixel); doElectricity(pixel); - if ((Math.random() > 0.85 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.85 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -4710,6 +5542,9 @@ elements.brain = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] doElectricity(hitPixel); @@ -4730,6 +5565,13 @@ elements.brain = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -4752,6 +5594,13 @@ elements.brain = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -4774,6 +5623,13 @@ elements.brain = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -4796,6 +5652,13 @@ elements.brain = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (pixel.charge) { @@ -4823,6 +5686,8 @@ elements.brain = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, isBio: true, movable: false, @@ -4879,6 +5744,9 @@ elements.amygdala = { // please please please ignore that i callled it the amygd if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -4894,6 +5762,13 @@ elements.amygdala = { // please please please ignore that i callled it the amygd hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -4911,6 +5786,13 @@ elements.amygdala = { // please please please ignore that i callled it the amygd hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -4928,6 +5810,13 @@ elements.amygdala = { // please please please ignore that i callled it the amygd hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -4945,6 +5834,13 @@ elements.amygdala = { // please please please ignore that i callled it the amygd hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (pixel.temp > 25) { pixel.temp -= 10; } @@ -4974,6 +5870,8 @@ elements.amygdala = { // please please please ignore that i callled it the amygd oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, isBio: true, movable: false, @@ -4988,7 +5886,7 @@ elements.nerve = { }, tick: function(pixel) { doDefaults(pixel); - if ((Math.random() > 0.895 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.895 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -5027,6 +5925,9 @@ elements.nerve = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -5042,6 +5943,13 @@ elements.nerve = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -5059,6 +5967,13 @@ elements.nerve = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -5076,6 +5991,13 @@ elements.nerve = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -5093,6 +6015,13 @@ elements.nerve = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } }, @@ -5116,6 +6045,8 @@ elements.nerve = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, isBio: true, movable: false, @@ -5133,148 +6064,7 @@ elements.throat_lining = { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.l || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - } - } - }, - density: 2710, - state: "solid", - conduct: .001, - tempHigh: 200, - stateHigh: "cooked_meat", - tempLow: -25, - stateLow: "frozen_meat", - burn: 5, - burnTime: 350, - burnInto: "cooked_meat", - breakInto: ["blood","meat"], - forceSaveColor: true, - reactions: { - "cancer": { elem1:"cancer", chance:0.0005 }, - "radiation": { elem1:["ash","slime","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }, - }, - properties: { - oxygen: 1000, - nutrition: 1000, - speed: 0, - }, - isBio: true, - movable: false, -} - -elements.intestines = { - color: "#bc6157", - category: "nutrition", - behavior: behaviors.WALL, - hoverStat: function(pixel) { - return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen - }, - tick: function(pixel) { - if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -5312,6 +6102,183 @@ elements.intestines = { } if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 + } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } + if (!isEmpty(pixel.x, pixel.y-1, true)) { + var hitPixel = pixelMap[pixel.x][pixel.y-1] + if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { + if (hitPixel.oxygen < pixel.oxygen) { + hitPixel.oxygen += 10 + pixel.oxygen -= 10 + } + if (hitPixel.nutrition < pixel.nutrition) { + hitPixel.nutrition += 10 + pixel.nutrition -= 10 + } + if (hitPixel.speed < pixel.speed) { + hitPixel.speed += 1 + pixel.speed -= 1 + } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } + } + } + if (!isEmpty(pixel.x, pixel.y+1, true)) { + var hitPixel = pixelMap[pixel.x][pixel.y+1] + if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { + if (hitPixel.oxygen < pixel.oxygen) { + hitPixel.oxygen += 10 + pixel.oxygen -= 10 + } + if (hitPixel.nutrition < pixel.nutrition) { + hitPixel.nutrition += 10 + pixel.nutrition -= 10 + } + if (hitPixel.speed < pixel.speed) { + hitPixel.speed += 1 + pixel.speed -= 1 + } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } + } + } + if (!isEmpty(pixel.x-1, pixel.y, true)) { + var hitPixel = pixelMap[pixel.x-1][pixel.y] + if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { + if (hitPixel.oxygen < pixel.oxygen) { + hitPixel.oxygen += 10 + pixel.oxygen -= 10 + } + if (hitPixel.nutrition < pixel.nutrition) { + hitPixel.nutrition += 10 + pixel.nutrition -= 10 + } + if (hitPixel.speed < pixel.speed) { + hitPixel.speed += 1 + pixel.speed -= 1 + } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } + } + } + if (!isEmpty(pixel.x+1, pixel.y, true)) { + var hitPixel = pixelMap[pixel.x+1][pixel.y] + if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { + if (hitPixel.oxygen < pixel.oxygen) { + hitPixel.oxygen += 10 + pixel.oxygen -= 10 + } + if (hitPixel.nutrition < pixel.nutrition) { + hitPixel.nutrition += 10 + pixel.nutrition -= 10 + } + if (hitPixel.speed < pixel.speed) { + hitPixel.speed += 1 + pixel.speed -= 1 + } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } + } + } + }, + density: 2710, + state: "solid", + conduct: .001, + tempHigh: 200, + stateHigh: "cooked_meat", + tempLow: -25, + stateLow: "frozen_meat", + burn: 5, + burnTime: 350, + burnInto: "cooked_meat", + breakInto: ["blood","meat"], + forceSaveColor: true, + reactions: { + "cancer": { elem1:"cancer", chance:0.0005 }, + "radiation": { elem1:["ash","slime","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }, + }, + properties: { + oxygen: 1000, + nutrition: 1000, + speed: 0, + poisoned: false, + immune: false, + }, + isBio: true, + movable: false, +} + +elements.intestines = { + color: "#bc6157", + category: "nutrition", + behavior: behaviors.WALL, + hoverStat: function(pixel) { + return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen + }, + tick: function(pixel) { + if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + pixel.nutrition-- + pixel.oxygen -= 2 + } + if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { + if (pixel.temp > 95) { + if (Math.random() < 0.75) { + changePixel(pixel,"meat"); + } + else { + changePixel(pixel,"cooked_meat"); + } + } + else if (pixel.temp < -15) { + if (Math.random() < 0.75) { + changePixel(pixel,"meat"); + } + else { + changePixel(pixel,"frozen_meat"); + } + } + else { + if (Math.random() < 0.999) { + changePixel(pixel,"meat"); + } + else { + changePixel(pixel,"rotten_meat"); + } + } + } + if (pixel.nutrition === null || isNaN(pixel.nutrition)) { + pixel.nutrition = 500 + } + if (pixel.oxygen === null || isNaN(pixel.oxygen)) { + pixel.oxygen = 500 + } + if (pixel.speed === null || isNaN(pixel.speed)) { + pixel.speed = 0 + } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] @@ -5326,6 +6293,13 @@ elements.intestines = { hitPixel.nutrition = 0; pixel.speed += hitPixel.speed; hitPixel.speed = 0; + if (hitPixel.poisoned === true && Math.random() > 0.9) { + pixel.poisoned = true + }; + if (hitPixel.immune === true && Math.random() > 0.5) { + pixel.poisoned = false + pixel.immune = true + }; } else if (elements[hitPixel.element].id === elements.gaseous_material.id && Math.random() > 0.99) { changePixel(hitPixel,"stench"); @@ -5333,6 +6307,13 @@ elements.intestines = { hitPixel.nutrition = 0; pixel.speed += hitPixel.speed; hitPixel.speed = 0; + if (hitPixel.poisoned === true && Math.random() > 0.9) { + pixel.poisoned = true + }; + if (hitPixel.immune === true && Math.random() > 0.5) { + pixel.poisoned = false + pixel.immune = true + }; } else if (elements[hitPixel.element].isBio === true && Math.random() > 0.25) { if (hitPixel.oxygen < pixel.oxygen) { @@ -5347,6 +6328,13 @@ elements.intestines = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -5362,6 +6350,13 @@ elements.intestines = { hitPixel.nutrition = 0; pixel.speed += hitPixel.speed; hitPixel.speed = 0; + if (hitPixel.poisoned === true && Math.random() > 0.9) { + pixel.poisoned = true + }; + if (hitPixel.immune === true && Math.random() > 0.5) { + pixel.poisoned = false + pixel.immune = true + }; } else if (elements[hitPixel.element].id === elements.gaseous_material.id && Math.random() > 0.99) { changePixel(hitPixel,"stench"); @@ -5369,6 +6364,13 @@ elements.intestines = { hitPixel.nutrition = 0; pixel.speed += hitPixel.speed; hitPixel.speed = 0; + if (hitPixel.poisoned === true && Math.random() > 0.9) { + pixel.poisoned = true + }; + if (hitPixel.immune === true && Math.random() > 0.5) { + pixel.poisoned = false + pixel.immune = true + }; } else if (elements[hitPixel.element].isBio === true && Math.random() > 0.25) { if (hitPixel.oxygen < pixel.oxygen) { @@ -5383,6 +6385,13 @@ elements.intestines = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -5398,11 +6407,25 @@ elements.intestines = { hitPixel.nutrition = 0; pixel.speed += hitPixel.speed; hitPixel.speed = 0; + if (hitPixel.poisoned === true && Math.random() > 0.9) { + pixel.poisoned = true + }; + if (hitPixel.immune === true && Math.random() > 0.5) { + pixel.poisoned = false + pixel.immune = true + }; } else if (elements[hitPixel.element].id === elements.gaseous_material.id && Math.random() > 0.99) { changePixel(hitPixel,"stench"); pixel.nutrition += hitPixel.nutrition; hitPixel.nutrition = 0; + if (hitPixel.poisoned === true && Math.random() > 0.9) { + pixel.poisoned = true + }; + if (hitPixel.immune === true && Math.random() > 0.5) { + pixel.poisoned = false + pixel.immune = true + }; } else if (elements[hitPixel.element].isBio === true && Math.random() > 0.25) { if (hitPixel.oxygen < pixel.oxygen) { @@ -5417,6 +6440,13 @@ elements.intestines = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -5432,6 +6462,13 @@ elements.intestines = { hitPixel.nutrition = 0; pixel.speed += hitPixel.speed; hitPixel.speed = 0; + if (hitPixel.poisoned === true && Math.random() > 0.9) { + pixel.poisoned = true + }; + if (hitPixel.immune === true && Math.random() > 0.5) { + pixel.poisoned = false + pixel.immune = true + }; } else if (elements[hitPixel.element].id === elements.gaseous_material.id && Math.random() > 0.99) { changePixel(hitPixel,"stench"); @@ -5439,6 +6476,13 @@ elements.intestines = { hitPixel.nutrition = 0; pixel.speed += hitPixel.speed; hitPixel.speed = 0; + if (hitPixel.poisoned === true && Math.random() > 0.9) { + pixel.poisoned = true + }; + if (hitPixel.immune === true && Math.random() > 0.5) { + pixel.poisoned = false + pixel.immune = true + }; } else if (elements[hitPixel.element].isBio === true && Math.random() > 0.25) { if (hitPixel.oxygen < pixel.oxygen) { @@ -5453,6 +6497,13 @@ elements.intestines = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } }, @@ -5476,6 +6527,8 @@ elements.intestines = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, movable: false, isBio: true @@ -5489,7 +6542,7 @@ elements.appendix = { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 if (Math.random() > 0.999 && (pixel.nutrition < 750 || pixel.oxygen < 500)) { @@ -5539,6 +6592,9 @@ elements.appendix = { } if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 + } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] @@ -5562,6 +6618,13 @@ elements.appendix = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -5586,6 +6649,13 @@ elements.appendix = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -5610,6 +6680,13 @@ elements.appendix = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -5634,6 +6711,13 @@ elements.appendix = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } }, @@ -5657,6 +6741,8 @@ elements.appendix = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, movable: false, isBio: true @@ -5677,7 +6763,7 @@ elements.simple_lung = { if (Math.random() < 0.01) { pixel.oxygen += 100 } break } } - if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -5715,6 +6801,9 @@ elements.simple_lung = { } if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 + } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] @@ -5731,6 +6820,13 @@ elements.simple_lung = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { pixel.smell = true @@ -5754,6 +6850,13 @@ elements.simple_lung = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { pixel.smell = true @@ -5777,6 +6880,13 @@ elements.simple_lung = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { pixel.smell = true @@ -5800,6 +6910,13 @@ elements.simple_lung = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { pixel.smell = true @@ -5829,6 +6946,8 @@ elements.simple_lung = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, movable: false, isBio: true @@ -5842,7 +6961,7 @@ elements.lungs = { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -5880,6 +6999,9 @@ elements.lungs = { } if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 + } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] @@ -5902,6 +7024,13 @@ elements.lungs = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { pixel.smell = true @@ -5931,6 +7060,13 @@ elements.lungs = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { pixel.smell = true @@ -5960,6 +7096,13 @@ elements.lungs = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { pixel.smell = true @@ -5989,6 +7132,13 @@ elements.lungs = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { pixel.smell = true @@ -6018,6 +7168,8 @@ elements.lungs = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, movable: false, isBio: true @@ -6095,6 +7247,9 @@ elements.amphib_skin = { } if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 + } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] @@ -6117,6 +7272,13 @@ elements.amphib_skin = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { pixel.smell = true @@ -6146,6 +7308,13 @@ elements.amphib_skin = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { pixel.smell = true @@ -6175,6 +7344,13 @@ elements.amphib_skin = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { pixel.smell = true @@ -6204,6 +7380,13 @@ elements.amphib_skin = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { pixel.smell = true @@ -6230,6 +7413,8 @@ elements.amphib_skin = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, isBio: true, movable: false, @@ -6288,6 +7473,9 @@ elements.exoskeleton = { } if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 + } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] @@ -6310,6 +7498,13 @@ elements.exoskeleton = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { pixel.smell = true @@ -6339,6 +7534,13 @@ elements.exoskeleton = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { pixel.smell = true @@ -6368,6 +7570,13 @@ elements.exoskeleton = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { pixel.smell = true @@ -6397,6 +7606,13 @@ elements.exoskeleton = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { pixel.smell = true @@ -6423,6 +7639,8 @@ elements.exoskeleton = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, isBio: true, movable: false, @@ -6438,7 +7656,7 @@ elements.gills = { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -6477,6 +7695,9 @@ elements.gills = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -6492,6 +7713,13 @@ elements.gills = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } else if (elements[hitPixel.element].id === elements.deoxygenated_water.id && Math.random() > 0.75) { if (!tryMove(hitPixel,pixel.x,pixel.y+1)) { @@ -6538,6 +7766,13 @@ elements.gills = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -6555,6 +7790,13 @@ elements.gills = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } else if (elements[hitPixel.element].id === elements.deoxygenated_water.id && Math.random() > 0.75) { if (isEmpty(pixel.x+1, pixel.y)) { @@ -6595,6 +7837,13 @@ elements.gills = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } }, @@ -6618,6 +7867,8 @@ elements.gills = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, movable: false, isBio: true @@ -6630,7 +7881,7 @@ elements.simple_gill = { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -- } @@ -6669,6 +7920,9 @@ elements.simple_gill = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -6684,6 +7938,13 @@ elements.simple_gill = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } else if (elements[hitPixel.element].id === elements.deoxygenated_water.id && Math.random() > 0.75) { if (!tryMove(hitPixel,pixel.x,pixel.y+1)) { @@ -6724,6 +7985,13 @@ elements.simple_gill = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -6741,6 +8009,13 @@ elements.simple_gill = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } else if (elements[hitPixel.element].id === elements.deoxygenated_water.id && Math.random() > 0.75) { if (isEmpty(pixel.x+1, pixel.y)) { @@ -6775,6 +8050,13 @@ elements.simple_gill = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } }, @@ -6798,6 +8080,8 @@ elements.simple_gill = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, movable: false, isBio: true @@ -6815,7 +8099,7 @@ elements.stomach_lining = { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -6854,6 +8138,9 @@ elements.stomach_lining = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -6869,6 +8156,13 @@ elements.stomach_lining = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -6886,6 +8180,13 @@ elements.stomach_lining = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -6903,6 +8204,13 @@ elements.stomach_lining = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -6920,6 +8228,13 @@ elements.stomach_lining = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } }, @@ -6943,6 +8258,8 @@ elements.stomach_lining = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, movable: false, isBio: true @@ -6960,7 +8277,7 @@ elements.decomposer_stomach = { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -6999,6 +8316,9 @@ elements.decomposer_stomach = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -7014,6 +8334,13 @@ elements.decomposer_stomach = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -7031,6 +8358,13 @@ elements.decomposer_stomach = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -7048,6 +8382,13 @@ elements.decomposer_stomach = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -7065,6 +8406,13 @@ elements.decomposer_stomach = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } }, @@ -7088,6 +8436,8 @@ elements.decomposer_stomach = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, movable: false, isBio: true @@ -7105,7 +8455,7 @@ elements.herbi_stomach = { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -7144,6 +8494,9 @@ elements.herbi_stomach = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -7159,6 +8512,13 @@ elements.herbi_stomach = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -7176,6 +8536,13 @@ elements.herbi_stomach = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -7193,6 +8560,13 @@ elements.herbi_stomach = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -7210,6 +8584,13 @@ elements.herbi_stomach = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } }, @@ -7233,6 +8614,8 @@ elements.herbi_stomach = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, movable: false, isBio: true @@ -7250,7 +8633,7 @@ elements.carni_stomach = { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -7289,6 +8672,9 @@ elements.carni_stomach = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -7304,6 +8690,13 @@ elements.carni_stomach = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -7321,6 +8714,13 @@ elements.carni_stomach = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -7338,6 +8738,13 @@ elements.carni_stomach = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -7355,6 +8762,13 @@ elements.carni_stomach = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } doDefaults(pixel); @@ -7379,6 +8793,8 @@ elements.carni_stomach = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, movable: false, isBio: true @@ -7396,7 +8812,7 @@ elements.explosive_stomach = { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -7435,6 +8851,9 @@ elements.explosive_stomach = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -7450,6 +8869,13 @@ elements.explosive_stomach = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -7467,6 +8893,13 @@ elements.explosive_stomach = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -7484,6 +8917,13 @@ elements.explosive_stomach = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -7501,6 +8941,13 @@ elements.explosive_stomach = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } doDefaults(pixel); @@ -7525,6 +8972,8 @@ elements.explosive_stomach = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, movable: false, isBio: true @@ -7542,7 +8991,7 @@ elements.stomach_valve = { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -7581,6 +9030,9 @@ elements.stomach_valve = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -7596,6 +9048,13 @@ elements.stomach_valve = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } else if ((elements[hitPixel.element].id === elements.digested_material.id || elements[hitPixel.element].id === elements.gaseous_material.id) && Math.random() > 0.75) { if (isEmpty(pixel.x, pixel.y+1)) { @@ -7618,6 +9077,13 @@ elements.stomach_valve = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -7635,6 +9101,13 @@ elements.stomach_valve = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -7652,6 +9125,13 @@ elements.stomach_valve = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } doDefaults(pixel); @@ -7676,6 +9156,8 @@ elements.stomach_valve = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, movable: false, isBio: true @@ -7688,7 +9170,7 @@ elements.sphincter = { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -7727,6 +9209,9 @@ elements.sphincter = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -7742,6 +9227,13 @@ elements.sphincter = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } else if ((elements[hitPixel.element].id === elements.excreted_poop.id || elements[hitPixel.element].id === elements.poop.id || elements[hitPixel.element].id === elements.stench.id || elements[hitPixel.element].id === elements.dirty_water.id) && Math.random() > 0.75) { if (elements[hitPixel.element].id === elements.poop.id) { @@ -7767,6 +9259,13 @@ elements.sphincter = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -7784,6 +9283,13 @@ elements.sphincter = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -7801,6 +9307,13 @@ elements.sphincter = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } doDefaults(pixel); @@ -7825,6 +9338,8 @@ elements.sphincter = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, movable: false, isBio: true @@ -7841,7 +9356,7 @@ elements.real_udder = { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.975 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.975 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen-- } @@ -7880,6 +9395,9 @@ elements.real_udder = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -7970,6 +9488,8 @@ elements.real_udder = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, tempHigh: 175, stateHigh: "meat", @@ -7998,7 +9518,7 @@ elements.biotorch = { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.975 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 550 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -5 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.975 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 550 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -5 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -8037,6 +9557,9 @@ elements.biotorch = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -8048,6 +9571,17 @@ elements.biotorch = { hitPixel.nutrition += 20 pixel.nutrition -= 20 } + if (hitPixel.speed < pixel.speed) { + hitPixel.speed += 1 + pixel.speed -= 1 + } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } else if (isEmpty(pixel.x, pixel.y-1) && Math.random() > 0.95 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { @@ -8067,6 +9601,17 @@ elements.biotorch = { hitPixel.nutrition += 20 pixel.nutrition -= 20 } + if (hitPixel.speed < pixel.speed) { + hitPixel.speed += 1 + pixel.speed -= 1 + } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } if (elements[hitPixel.element].isBio != true && Math.random() > 0.5) { if (hitPixel.temp < pixel.temp) { @@ -8098,6 +9643,17 @@ elements.biotorch = { hitPixel.nutrition += 20 pixel.nutrition -= 20 } + if (hitPixel.speed < pixel.speed) { + hitPixel.speed += 1 + pixel.speed -= 1 + } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } if (elements[hitPixel.element].isBio != true && Math.random() > 0.5) { if (hitPixel.temp < pixel.temp) { @@ -8129,6 +9685,17 @@ elements.biotorch = { hitPixel.nutrition += 20 pixel.nutrition -= 20 } + if (hitPixel.speed < pixel.speed) { + hitPixel.speed += 1 + pixel.speed -= 1 + } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } if (elements[hitPixel.element].isBio != true && Math.random() > 0.5) { if (hitPixel.temp < pixel.temp) { @@ -8155,6 +9722,8 @@ elements.biotorch = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, tempHigh: 750, stateHigh: "cooked_meat", @@ -8179,7 +9748,7 @@ elements.digested_material = { ], properties: { nutrition: 100, - speed: 0, + speed: 0, }, category: "nutrition", state: "solid", @@ -8324,9 +9893,9 @@ elements.intestine_bacteria = { elements.stomach_acid = { color: ["#b5cf91","#288f2a"], behavior: [ - "XX|DB%1|XX", - "DB%1 AND M2|DL%0.03|DB%1 AND M2", - "DB%1 AND M2|DB%2 AND M1|DB%1 AND M2", + "XX|ADB%5|XX", + "ADB%5 AND M2|DL%0.03|ADB%5 AND M2", + "ADB%5 AND M2|ADB%5 AND M1|ADB%5 AND M2", ], ignore: ["amphib_skin","amphib_dermis","acidic_flesh","acid_vessel","throat_lining","explosive_stomach","stomach_lining","stomach_valve","slime","gaseous_material","digested_material","glass","rad_glass","glass_shard","rad_shard","stained_glass","baked_clay","acid_gas","neutral_acid","acid_cloud","water","salt_water","sugar_water","dirty_water","copper","gold","porcelain","plastic","bead","microplastic","molten_plastic","pool_water","chlorine","hydrogen","gold_coin","silver","nickel","calcium","bone","earthquake","tornado","tsunami","liquid_light","sensor"], reactions: { @@ -8343,7 +9912,7 @@ elements.stomach_acid = { "cooked_meat": { elem2:"digested_material", attr2:{"nutrition":60}, chance:0.02 }, "broth": { elem1:null, elem2:"digested_material", attr2:{"nutrition":45}, chance:0.02 }, "rotten_meat": { elem2:["digested_material","ammonia",null,null,null], attr2:{"nutrition":-10, "speed":-10}, chance:0.02 }, - "cured_meat": { elem2:"digested_material", attr2:{"nutrition":50}, chance:0.02 }, + "immune_meat": { elem2:"digested_material", attr2:{"nutrition":50}, chance:0.02 }, "cheese": { elem2:"digested_material", attr2:{"nutrition":35}, chance:0.02 }, "cheese_powder": { elem2:"digested_material", attr2:{"nutrition":35}, chance:0.02 }, "lettuce": { elem2:"digested_material", attr2:{"nutrition":40}, chance:0.02 }, @@ -8373,12 +9942,15 @@ elements.stomach_acid = { "nut_butter": { elem2:"digested_material", attr2:{"nutrition":25}, chance:0.02 }, "ketchup": { elem2:"digested_material", attr2:{"nutrition":35}, chance:0.02 }, "jelly": { elem2:"digested_material", attr2:{"nutrition":25}, chance:0.02 }, - "bleach": { elem2:"digested_material", attr2:{"nutrition":-500, "speed":-10}, chance:0.02 }, - "poison": { elem2:"digested_material", attr2:{"nutrition":-750, "speed":-10}, chance:0.02 }, + "bleach": { elem2:"digested_material", attr2:{"nutrition":-500, "speed":-10, "poisoned":true}, chance:0.02 }, + "poison": { elem2:"digested_material", attr2:{"nutrition":-750, "speed":-10, "poisoned":true}, chance:0.02 }, + "cyanide": { elem2:"digested_material", attr2:{"nutrition":-750, "speed":-10, "poisoned":true}, chance:0.02 }, "soap": { elem2:"digested_material", attr2:{"nutrition":-20, "speed":-10}, chance:0.02 }, - "mercury": { elem2:"digested_material", attr2:{"nutrition":-500, "speed":-10}, chance:0.02 }, - "chlorine": { elem2:"gaseous_material", attr2:{"nutrition":-500, "speed":-10}, chance:0.02 }, + "mercury": { elem2:"digested_material", attr2:{"nutrition":-500, "speed":-10, "poisoned":true}, chance:0.02 }, + "chlorine": { elem2:"gaseous_material", attr2:{"nutrition":-500, "speed":-10, "poisoned":true}, chance:0.02 }, "pool_water": { elem2:"digested_material", attr2:{"nutrition":-400, "speed":-10}, chance:0.02 }, + "vaccine": { elem2:"digested_material", attr2:{"nutrition":1, "speed":-1, "immune":true}, chance:0.02 }, + "antidote": { elem2:"digested_material", attr2:{"nutrition":-1, "speed":1, "immune":true}, chance:0.02 }, "coffee": { elem2:"digested_material", attr2:{"nutrition":20, "speed":10}, chance:0.02 }, "tomato": { elem2:"digested_material", attr2:{"nutrition":45}, chance:0.02 }, "grape": { elem2:"digested_material", attr2:{"nutrition":45}, chance:0.02 }, @@ -8433,9 +10005,9 @@ elements.stomach_acid = { elements.herbi_acid = { color: ["#A8E54F","#5BC217"], behavior: [ - "XX|DB%1|XX", - "DB%1 AND M2|DL%0.03|DB%1 AND M2", - "DB%1 AND M2|DB%2 AND M1|DB%1 AND M2", + "XX|ADB%5|XX", + "ADB%5 AND M2|DL%0.03|ADB%5 AND M2", + "ADB%5 AND M2|ADB%5 AND M1|ADB%5 AND M2", ], ignore: ["amphib_skin","amphib_dermis","acidic_flesh","acid_vessel","throat_lining","explosive_stomach","herbi_stomach","carni_stomach","stomach_lining","stomach_valve","slime","gaseous_material","digested_material","glass","rad_glass","glass_shard","rad_shard","stained_glass","baked_clay","acid_gas","neutral_acid","acid_cloud","water","salt_water","sugar_water","dirty_water","copper","gold","porcelain","plastic","bead","microplastic","molten_plastic","pool_water","chlorine","hydrogen","gold_coin","silver","nickel","calcium","bone","earthquake","tornado","tsunami","liquid_light","sensor"], reactions: { @@ -8453,7 +10025,7 @@ elements.herbi_acid = { "cooked_meat": { elem2:"digested_material", attr2:{"nutrition":-5, "speed":1}, chance:0.02 }, "broth": { elem1:null, elem2:"digested_material", attr2:{"nutrition":-5}, chance:0.02 }, "rotten_meat": { elem2:["digested_material","ammonia",null,null,null], attr2:{"nutrition":-25, "speed":-20}, chance:0.02 }, - "cured_meat": { elem2:"digested_material", attr2:{"nutrition":-5, "speed":-1}, chance:0.02 }, + "immune_meat": { elem2:"digested_material", attr2:{"nutrition":-5, "speed":-1}, chance:0.02 }, "cheese": { elem2:"digested_material", attr2:{"nutrition":40}, chance:0.02 }, "cheese_powder": { elem2:"digested_material", attr2:{"nutrition":35}, chance:0.02 }, "vine": { elem2:"digested_material", attr2:{"nutrition":60}, chance:0.02 }, @@ -8487,12 +10059,15 @@ elements.herbi_acid = { "nut_butter": { elem2:"digested_material", attr2:{"nutrition":35}, chance:0.02 }, "ketchup": { elem2:"digested_material", attr2:{"nutrition":35}, chance:0.02 }, "jelly": { elem2:"digested_material", attr2:{"nutrition":35}, chance:0.02 }, - "bleach": { elem2:"digested_material", attr2:{"nutrition":-500, "speed":-20}, chance:0.02 }, - "poison": { elem2:"digested_material", attr2:{"nutrition":-750, "speed":-20}, chance:0.02 }, + "bleach": { elem2:"digested_material", attr2:{"nutrition":-500, "speed":-20, "poisoned":true}, chance:0.02 }, + "poison": { elem2:"digested_material", attr2:{"nutrition":-750, "speed":-20, "poisoned":true}, chance:0.02 }, + "cyanide": { elem2:"digested_material", attr2:{"nutrition":-750, "speed":-20, "poisoned":true}, chance:0.02 }, "soap": { elem2:"digested_material", attr2:{"nutrition":-20, "speed":-10}, chance:0.02 }, - "mercury": { elem2:"digested_material", attr2:{"nutrition":-500, "speed":-20}, chance:0.02 }, - "chlorine": { elem2:"gaseous_material", attr2:{"nutrition":-500, "speed":-20}, chance:0.02 }, - "pool_water": { elem2:"digested_material", attr2:{"nutrition":-400, "speed":-15}, chance:0.02 }, + "mercury": { elem2:"digested_material", attr2:{"nutrition":-500, "speed":-20, "poisoned":true}, chance:0.02 }, + "chlorine": { elem2:"gaseous_material", attr2:{"nutrition":-500, "speed":-20, "poisoned":true}, chance:0.02 }, + "pool_water": { elem2:"digested_material", attr2:{"nutrition":-400, "speed":-20}, chance:0.02 }, + "vaccine": { elem2:"digested_material", attr2:{"nutrition":1, "speed":-1, "immune":true}, chance:0.02 }, + "antidote": { elem2:"digested_material", attr2:{"nutrition":-1, "speed":1, "immune":true}, chance:0.02 }, "coffee": { elem2:"digested_material", attr2:{"nutrition":20, "speed":10}, chance:0.02 }, "tomato": { elem2:"digested_material", attr2:{"nutrition":55}, chance:0.02 }, "grape": { elem2:"digested_material", attr2:{"nutrition":50}, chance:0.02 }, @@ -8547,9 +10122,9 @@ elements.herbi_acid = { elements.carni_acid = { color: ["#ADA469","#5B6517"], behavior: [ - "XX|DB%1|XX", - "DB%1 AND M2|DL%0.005|DB%1 AND M2", - "DB%1 AND M2|DB%2 AND M1|DB%1 AND M2", + "XX|ADB%5|XX", + "ADB%5 AND M2|DL%0.005|ADB%5 AND M2", + "ADB%5 AND M2|ADB%5 AND M1|ADB%5 AND M2", ], ignore: ["amphib_skin","amphib_dermis","acidic_flesh","acid_vessel","throat_lining","explosive_stomach","stomach_lining","carni_stomach","stomach_valve","slime","gaseous_material","digested_material","glass","rad_glass","glass_shard","rad_shard","stained_glass","baked_clay","acid_gas","neutral_acid","acid_cloud","water","salt_water","sugar_water","dirty_water","copper","gold","porcelain","plastic","bead","microplastic","molten_plastic","pool_water","chlorine","hydrogen","gold_coin","silver","nickel","calcium","bone","earthquake","tornado","tsunami","liquid_light","sensor"], reactions: { @@ -8567,7 +10142,7 @@ elements.carni_acid = { "cooked_meat": { elem2:"digested_material", attr2:{"nutrition":60, "speed":4}, chance:0.02 }, "broth": { elem1:null, elem2:"digested_material", attr2:{"nutrition":50, "speed":6}, chance:0.02 }, "rotten_meat": { elem2:["digested_material","ammonia",null,null,null], attr2:{"nutrition":5, "speed":-5}, chance:0.02 }, - "cured_meat": { elem2:"digested_material", attr2:{"nutrition":50, "speed":-1}, chance:0.02 }, + "immune_meat": { elem2:"digested_material", attr2:{"nutrition":50, "speed":-1}, chance:0.02 }, "cheese": { elem2:"digested_material", attr2:{"nutrition":35, "speed":-1}, chance:0.02 }, "cheese_powder": { elem2:"digested_material", attr2:{"nutrition":35, "speed":-1}, chance:0.02 }, "lettuce": { elem2:"digested_material", attr2:{"nutrition":20}, chance:0.02 }, @@ -8602,12 +10177,15 @@ elements.carni_acid = { "nut_butter": { elem2:"digested_material", attr2:{"nutrition":15}, chance:0.02 }, "ketchup": { elem2:"digested_material", attr2:{"nutrition":25}, chance:0.02 }, "jelly": { elem2:"digested_material", attr2:{"nutrition":15}, chance:0.02 }, - "bleach": { elem2:"digested_material", attr2:{"nutrition":-500, "speed":-20}, chance:0.02 }, - "poison": { elem2:"digested_material", attr2:{"nutrition":-750, "speed":-20}, chance:0.02 }, + "bleach": { elem2:"digested_material", attr2:{"nutrition":-500, "speed":-20, "poisoned":true}, chance:0.02 }, + "poison": { elem2:"digested_material", attr2:{"nutrition":-750, "speed":-20, "poisoned":true}, chance:0.02 }, + "cyanide": { elem2:"digested_material", attr2:{"nutrition":-750, "speed":-20, "poisoned":true}, chance:0.02 }, "soap": { elem2:"digested_material", attr2:{"nutrition":-20, "speed":-15}, chance:0.02 }, - "mercury": { elem2:"digested_material", attr2:{"nutrition":-500, "speed":-20}, chance:0.02 }, - "chlorine": { elem2:"gaseous_material", attr2:{"nutrition":-500, "speed":-20}, chance:0.02 }, + "mercury": { elem2:"digested_material", attr2:{"nutrition":-500, "speed":-20, "poisoned":true}, chance:0.02 }, + "chlorine": { elem2:"gaseous_material", attr2:{"nutrition":-500, "speed":-20, "poisoned":true}, chance:0.02 }, "pool_water": { elem2:"digested_material", attr2:{"nutrition":-400, "speed":-15}, chance:0.02 }, + "vaccine": { elem2:"digested_material", attr2:{"nutrition":1, "speed":-1, "immune":true}, chance:0.02 }, + "antidote": { elem2:"digested_material", attr2:{"nutrition":-1, "speed":1, "immune":true}, chance:0.02 }, "coffee": { elem2:"digested_material", attr2:{"nutrition":10, "speed":5}, chance:0.02 }, "tomato": { elem2:"digested_material", attr2:{"nutrition":25}, chance:0.02 }, "grape": { elem2:"digested_material", attr2:{"nutrition":25}, chance:0.02 }, @@ -8661,9 +10239,9 @@ elements.carni_acid = { elements.explosive_acid = { color: ["#E9DC8C","#D0C15A"], behavior: [ - "XX|DB%1|XX", - "DB%1 AND M2|DL%0.001|DB%1 AND M2", - "DB%1 AND M2|DB%2 AND M1|DB%1 AND M2", + "XX|ADB%5|XX", + "ADB%5 AND M2|DL%0.005|ADB%5 AND M2", + "ADB%5 AND M2|ADB%5 AND M1|ADB%5 AND M2", ], ignore: ["amphib_skin","amphib_dermis","acidic_flesh","acid_vessel","throat_lining","stomach_lining","explosive_stomach","stomach_valve","slime","gaseous_material","digested_material","glass","rad_glass","glass_shard","rad_shard","stained_glass","baked_clay","acid_gas","neutral_acid","acid_cloud","water","salt_water","sugar_water","dirty_water","copper","gold","porcelain","plastic","bead","microplastic","molten_plastic","pool_water","chlorine","hydrogen","gold_coin","silver","nickel","calcium","bone","earthquake","tornado","tsunami","liquid_light","sensor"], reactions: { @@ -8681,7 +10259,7 @@ elements.explosive_acid = { "cooked_meat": { elem2:"digested_material", attr2:{"nutrition":60}, chance:0.02 }, "broth": { elem1:null, elem2:"digested_material", attr2:{"nutrition":55}, chance:0.02 }, "rotten_meat": { elem2:["digested_material","ammonia",null,null,null], attr2:{"nutrition":30}, chance:0.02 }, - "cured_meat": { elem2:"digested_material", attr2:{"nutrition":50}, chance:0.02 }, + "immune_meat": { elem2:"digested_material", attr2:{"nutrition":50}, chance:0.02 }, "cheese": { elem2:"digested_material", attr2:{"nutrition":35}, chance:0.02 }, "lettuce": { elem2:"digested_material", attr2:{"nutrition":40}, chance:0.02 }, "herb": { elem2:"digested_material", attr2:{"nutrition":35}, chance:0.02 }, @@ -8712,10 +10290,13 @@ elements.explosive_acid = { "jelly": { elem2:"digested_material", attr2:{"nutrition":25}, chance:0.02 }, "bleach": { elem2:"digested_material", attr2:{"nutrition":5}, chance:0.02 }, "poison": { elem2:"digested_material", attr2:{"nutrition":20}, chance:0.02 }, + "cyanide": { elem2:"digested_material", attr2:{"nutrition":20}, chance:0.02 }, "soap": { elem2:"digested_material", attr2:{"nutrition":5}, chance:0.02 }, "mercury": { elem2:"digested_material", attr2:{"nutrition":5}, chance:0.02 }, "chlorine": { elem2:"gaseous_material", attr2:{"nutrition":5}, chance:0.02 }, "pool_water": { elem2:"digested_material", attr2:{"nutrition":10}, chance:0.02 }, + "vaccine": { elem2:"digested_material", attr2:{"nutrition":1, "speed":-1, "immune":true}, chance:0.02 }, + "antidote": { elem2:"digested_material", attr2:{"nutrition":-1, "speed":1, "immune":true}, chance:0.02 }, "coffee": { elem2:"digested_material", attr2:{"nutrition":20}, chance:0.02 }, "tomato": { elem2:"digested_material", attr2:{"nutrition":45}, chance:0.02 }, "grape": { elem2:"digested_material", attr2:{"nutrition":45}, chance:0.02 }, @@ -8772,9 +10353,9 @@ elements.explosive_acid = { elements.decomposer_acid = { color: ["#847C35","#6F7326"], behavior: [ - "XX|DB%1|XX", - "DB%1 AND M2|DL%0.005|DB%1 AND M2", - "DB%1 AND M2|DB%2 AND M1|DB%1 AND M2", + "XX|ADB%5|XX", + "ADB%5 AND M2|DL%0.005|ADB%5 AND M2", + "ADB%5 AND M2|ADB%5 AND M1|ADB%5 AND M2", ], ignore: ["amphib_skin","amphib_dermis","acidic_flesh","acid_vessel","decomposer_stomach","throat_lining","explosive_stomach","herbi_stomach","carni_stomach","stomach_lining","stomach_valve","slime","gaseous_material","digested_material","glass","rad_glass","glass_shard","rad_shard","stained_glass","baked_clay","acid_gas","neutral_acid","acid_cloud","water","salt_water","sugar_water","dirty_water","copper","gold","porcelain","plastic","bead","microplastic","molten_plastic","pool_water","chlorine","hydrogen","gold_coin","silver","nickel","calcium","bone","earthquake","tornado","tsunami","liquid_light","sensor"], reactions: { @@ -8792,7 +10373,7 @@ elements.decomposer_acid = { "cooked_meat": { elem2:"digested_material", attr2:{"nutrition":-5}, chance:0.02 }, "broth": { elem1:null, elem2:"digested_material", attr2:{"nutrition":25}, chance:0.02 }, "rotten_meat": { elem2:["digested_material","ammonia",null,null,null], attr2:{"nutrition":55, "speed":5}, chance:0.02 }, - "cured_meat": { elem2:"digested_material", attr2:{"nutrition":-5}, chance:0.02 }, + "immune_meat": { elem2:"digested_material", attr2:{"nutrition":-5}, chance:0.02 }, "cheese": { elem2:"digested_material", attr2:{"nutrition":50}, chance:0.02 }, "vine": { elem2:"digested_material", attr2:{"nutrition":30}, chance:0.02 }, "grass": { elem2:"digested_material", attr2:{"nutrition":30}, chance:0.02 }, @@ -8820,12 +10401,15 @@ elements.decomposer_acid = { "nut_butter": { elem2:"digested_material", attr2:{"nutrition":15}, chance:0.02 }, "ketchup": { elem2:"digested_material", attr2:{"nutrition":15}, chance:0.02 }, "jelly": { elem2:"digested_material", attr2:{"nutrition":25}, chance:0.02 }, - "bleach": { elem2:"digested_material", attr2:{"nutrition":-500, "speed":-15}, chance:0.02 }, - "poison": { elem2:"digested_material", attr2:{"nutrition":-750, "speed":-15}, chance:0.02 }, - "soap": { elem2:"digested_material", attr2:{"nutrition":-20, "speed":-10}, chance:0.02 }, - "mercury": { elem2:"digested_material", attr2:{"nutrition":-500, "speed":-15}, chance:0.02 }, - "chlorine": { elem2:"gaseous_material", attr2:{"nutrition":-500, "speed":-15}, chance:0.02 }, + "bleach": { elem2:"digested_material", attr2:{"nutrition":-500, "speed":-20, "poisoned":true}, chance:0.02 }, + "poison": { elem2:"digested_material", attr2:{"nutrition":-750, "speed":-20, "poisoned":true}, chance:0.02 }, + "cyanide": { elem2:"digested_material", attr2:{"nutrition":-750, "speed":-20, "poisoned":true}, chance:0.02 }, + "soap": { elem2:"digested_material", attr2:{"nutrition":-20, "speed":-15}, chance:0.02 }, + "mercury": { elem2:"digested_material", attr2:{"nutrition":-500, "speed":-20, "poisoned":true}, chance:0.02 }, + "chlorine": { elem2:"gaseous_material", attr2:{"nutrition":-500, "speed":-20, "poisoned":true}, chance:0.02 }, "pool_water": { elem2:"digested_material", attr2:{"nutrition":-400, "speed":-15}, chance:0.02 }, + "vaccine": { elem2:"digested_material", attr2:{"nutrition":1, "speed":-1, "immune":true}, chance:0.02 }, + "antidote": { elem2:"digested_material", attr2:{"nutrition":-1, "speed":1, "immune":true}, chance:0.02 }, "coffee": { elem2:"digested_material", attr2:{"nutrition":20, "speed":10}, chance:0.02 }, "tomato": { elem2:"digested_material", attr2:{"nutrition":55}, chance:0.02 }, "grape": { elem2:"digested_material", attr2:{"nutrition":40}, chance:0.02 }, @@ -8920,7 +10504,7 @@ elements.deoxygenated_water = { "firefly": { elem2:"dead_bug", chance:0.1, oneway:true }, "bee": { elem2:"dead_bug", chance:0.05, oneway:true }, "stink_bug": { elem2:"dead_bug", chance:0.1, oneway:true }, - "cured_meat": { elem1:"salt_water", elem2:"meat" }, + "immune_meat": { elem1:"salt_water", elem2:"meat" }, "water": { elem1:"water", chance:0.005 }, "salt_water": { elem1:"water", chance:0.005 }, "deoxygenated_water": { elem2:"bubble", attr2:{"clone":"water"}, chance:0.001, tempMin:85 }, @@ -8945,7 +10529,7 @@ elements.real_bone = { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.99 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.99 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -8969,6 +10553,9 @@ elements.real_bone = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -8984,6 +10571,13 @@ elements.real_bone = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -9001,6 +10595,13 @@ elements.real_bone = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -9018,6 +10619,13 @@ elements.real_bone = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -9035,6 +10643,13 @@ elements.real_bone = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } }, @@ -9050,6 +10665,8 @@ elements.real_bone = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, breakInto: ["quicklime","quicklime","quicklime","blood","bone","bone","bone","bone","bone","bone"], movable: false, @@ -9078,7 +10695,7 @@ elements.real_bone_marrow = { } } doDefaults(pixel); - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -9117,6 +10734,9 @@ elements.real_bone_marrow = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -9132,9 +10752,17 @@ elements.real_bone_marrow = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (elements[hitPixel.element].isBlood === true) { if (Math.random() > 0.999 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2020))) { - changePixel(hitPixel,"white_blood_cell"); + hitPixel.element = "white_blood_cell"; + hitPixel.color = elements.white_blood_cell.color; } } } @@ -9154,9 +10782,17 @@ elements.real_bone_marrow = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (elements[hitPixel.element].isBlood === true) { if (Math.random() > 0.999 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2020))) { - changePixel(hitPixel,"white_blood_cell"); + hitPixel.element = "white_blood_cell"; + hitPixel.color = elements.white_blood_cell.color; } } } @@ -9176,9 +10812,17 @@ elements.real_bone_marrow = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (elements[hitPixel.element].isBlood === true) { if (Math.random() > 0.999 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2020))) { - changePixel(hitPixel,"white_blood_cell"); + hitPixel.element = "white_blood_cell"; + hitPixel.color = elements.white_blood_cell.color; } } } @@ -9198,9 +10842,17 @@ elements.real_bone_marrow = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } if (elements[hitPixel.element].isBlood === true) { if (Math.random() > 0.999 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2020))) { - changePixel(hitPixel,"white_blood_cell"); + hitPixel.element = "white_blood_cell"; + hitPixel.color = elements.white_blood_cell.color; } } } @@ -9227,6 +10879,8 @@ elements.real_bone_marrow = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, isBio: true, movable: false, @@ -9239,7 +10893,7 @@ elements.cartilage = { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.99 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.99 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -9296,6 +10950,9 @@ elements.cartilage = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -9311,6 +10968,13 @@ elements.cartilage = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -9328,6 +10992,13 @@ elements.cartilage = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -9345,6 +11016,13 @@ elements.cartilage = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -9362,6 +11040,13 @@ elements.cartilage = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } }, @@ -9377,6 +11062,8 @@ elements.cartilage = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, breakInto: ["quicklime","calcium","meat","meat","water","water",null], movable: false, @@ -9399,6 +11086,9 @@ elements.cerebrospinal_fluid = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -9414,6 +11104,13 @@ elements.cerebrospinal_fluid = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -9431,6 +11128,13 @@ elements.cerebrospinal_fluid = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -9448,6 +11152,13 @@ elements.cerebrospinal_fluid = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -9465,6 +11176,13 @@ elements.cerebrospinal_fluid = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } }, @@ -9519,6 +11237,8 @@ elements.cerebrospinal_fluid = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, extinguish: true, isBio: true @@ -9533,6 +11253,7 @@ elements.urine = { stateLowName: "pee_ice", category: "liquids", reactions: { + "sand": { elem1:null, elem2:"wet_sand", chance: 0.02}, "dust": { elem1: "dirty_water", elem2: null }, "ash": { elem1: "dirty_water", elem2: null }, "carbon_dioxide": { elem1: "dirty_water", elem2: null }, @@ -9633,6 +11354,9 @@ elements.brain_jar_juice = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -9718,6 +11442,8 @@ elements.brain_jar_juice = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, extinguish: true } @@ -9743,7 +11469,7 @@ elements.bacteria = { "rotten_cheese": { elem2:null, chance:0.05, func:behaviors.FEEDPIXEL }, "cheese": { elem2:"rotten_cheese", chance:0.5, func:behaviors.FEEDPIXEL }, "meat": { elem2:"rotten_meat", chance:0.5, func:behaviors.FEEDPIXEL }, - "cured_meat": { elem1:[null,null,null,null,null,null,null,null,null,"dna"], chance:0.01 }, + "immune_meat": { elem1:[null,null,null,null,null,null,null,null,null,"dna"], chance:0.01 }, "dead_plant": { elem2:"dirt", chance:0.05, func:behaviors.FEEDPIXEL }, "dead_bug": { elem2:null, chance:0.02, func:behaviors.FEEDPIXEL }, "mercury": { elem1:[null,null,null,null,null,null,null,null,null,"dna"], chance:0.1 }, @@ -9786,7 +11512,7 @@ elements.tract = { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -9825,6 +11551,9 @@ elements.tract = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -9840,6 +11569,13 @@ elements.tract = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -9857,6 +11593,13 @@ elements.tract = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -9874,6 +11617,13 @@ elements.tract = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -9891,6 +11641,13 @@ elements.tract = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!pixel.stage && pixelTicks-pixel.start > 60) { @@ -10024,6 +11781,8 @@ elements.tract = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, isBio: true, } @@ -10048,7 +11807,7 @@ elements.biosensor = { } } } - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -10087,6 +11846,9 @@ elements.biosensor = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -10102,6 +11864,13 @@ elements.biosensor = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -10119,6 +11888,13 @@ elements.biosensor = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -10136,6 +11912,13 @@ elements.biosensor = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -10153,6 +11936,13 @@ elements.biosensor = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } doDefaults(pixel); @@ -10177,6 +11967,8 @@ elements.biosensor = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, isBio: true, movable: false, @@ -10214,7 +12006,7 @@ elements.bioplate = { else if (pixel.on) { pixel.on = false; } - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -10253,6 +12045,9 @@ elements.bioplate = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -10268,6 +12063,13 @@ elements.bioplate = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -10285,6 +12087,13 @@ elements.bioplate = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -10302,6 +12111,13 @@ elements.bioplate = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -10319,6 +12135,13 @@ elements.bioplate = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } doDefaults(pixel); @@ -10343,6 +12166,8 @@ elements.bioplate = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, isBio: true, movable: false, @@ -10361,7 +12186,7 @@ elements.biocloner = { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -- } @@ -10400,6 +12225,9 @@ elements.biocloner = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -10415,6 +12243,13 @@ elements.biocloner = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -10432,6 +12267,13 @@ elements.biocloner = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -10449,6 +12291,13 @@ elements.biocloner = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -10466,6 +12315,13 @@ elements.biocloner = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } doDefaults(pixel) @@ -10505,6 +12361,8 @@ elements.biocloner = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, isBio: true, movable: false, @@ -10523,7 +12381,7 @@ elements.valve = { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition-- pixel.oxygen -= 2 } @@ -10562,6 +12420,9 @@ elements.valve = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (pixel.charge || !pixel.open) { pixel.openAge = 0 pixel.open = true @@ -10596,6 +12457,13 @@ elements.valve = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -10613,6 +12481,13 @@ elements.valve = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -10630,6 +12505,13 @@ elements.valve = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -10647,6 +12529,13 @@ elements.valve = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } doDefaults(pixel); @@ -10670,6 +12559,8 @@ elements.valve = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, isBio: true, movable: false, @@ -10684,7 +12575,7 @@ elements.valve_extension = { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { + if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { pixel.nutrition -= 2 pixel.oxygen -= 2 } @@ -10723,6 +12614,9 @@ elements.valve_extension = { if (pixel.speed === null || isNaN(pixel.speed)) { pixel.speed = 0 } + if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -10738,6 +12632,13 @@ elements.valve_extension = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -10755,6 +12656,13 @@ elements.valve_extension = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -10772,6 +12680,13 @@ elements.valve_extension = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -10789,6 +12704,13 @@ elements.valve_extension = { hitPixel.speed += 1 pixel.speed -= 1 } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } } } doDefaults(pixel); @@ -10811,6 +12733,8 @@ elements.valve_extension = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, isBio: true, movable: false, @@ -10839,7 +12763,7 @@ elements.revive = { pixel.burning = false } } - if (elements[pixel.element].id === elements.rotten_meat.id || elements[pixel.element].id === elements.cancer.id) { + if (elements[pixel.element].id === elements.cancer.id) { changePixel(pixel,"flesh"); } else if (elements[pixel.element].id === elements.bone.id) { From 0f8bf2b1e236468bad3b095963261421be199a08 Mon Sep 17 00:00:00 2001 From: Nekonico <163950752+DBNekonico@users.noreply.github.com> Date: Sat, 18 Jan 2025 16:19:52 -0800 Subject: [PATCH 2/2] shortening and glass shard damage --- mods/biology.js | 9680 +++++++++-------------------------------------- 1 file changed, 1773 insertions(+), 7907 deletions(-) diff --git a/mods/biology.js b/mods/biology.js index d8a2c8e5..7adf05b4 100644 --- a/mods/biology.js +++ b/mods/biology.js @@ -66,6 +66,16 @@ viewInfo[7] = { // Illness View } } +renderPresets.FLESHBURN = function(pixel,ctx) { + drawDefault(ctx,pixel); + if (!viewInfo[view].colorEffects || !pixel.char || pixel.char < 11) { return } + var max = 25; + var ratio = ((pixel.char/max*100)|0)/100; + if (ratio < 0.5) { return } + if (ratio > 1) { ratio = 1 } + drawSquare(ctx,"#000000",pixel.x,pixel.y,undefined,Math.min(0.8,(ratio-0.5)*0.8)); +}, + behaviorRules.BCF = function() { if (btemp.pixel.clone) { if (isEmpty(btemp.newCoords.x, btemp.newCoords.y)) { @@ -153,152 +163,620 @@ behaviorRules.ADB = function() { } }, +doBioNorm = function(pixel) { +if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0) || Math.random() > 0.85 && Math.random() < (pixel.burnt / 100) || Math.random() > 0.5 && Math.random() < (pixel.char / 100)) { + pixel.nutrition-- + pixel.oxygen-- +} +if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { + if (elements[pixel.element].isMultiDie === true) { + if (pixel.temp > 95) { + if (Math.random() < 0.75) { + changePixel(pixel,elements[pixel.element].normDie); + } + else { + changePixel(pixel,elements[pixel.element].heatDie); + } + } + else if (pixel.temp < -15) { + if (Math.random() < 0.75) { + changePixel(pixel,elements[pixel.element].normDie); + } + else { + changePixel(pixel,elements[pixel.element].coldDie); + } + } + else { + if (Math.random() < 0.999) { + changePixel(pixel,elements[pixel.element].normDie); + } + else { + changePixel(pixel,elements[pixel.element].roomDie); + } + } + } + else if (elements[pixel.element].isMultiDie === false) { + if (Math.random() < 0.75) { + changePixel(pixel,elements[pixel.element].normDie); + } + else { + changePixel(pixel,elements[pixel.element].otherDie); + } + } +} +if (pixel.nutrition === null || isNaN(pixel.nutrition)) { + pixel.nutrition = 500 +} +if (pixel.oxygen === null || isNaN(pixel.oxygen)) { + pixel.oxygen = 500 +} +if (pixel.speed === null || isNaN(pixel.speed)) { + pixel.speed = 0 +} +if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false +} +if ((pixel.temp > 66 || pixel.burning) && Math.random() > 0.95) { + if (!pixel.burnt) { pixel.burnt = 1 } + else { pixel.burnt ++ } +} +if (pixel.char != pixel.burnt && pixel.burnt > pixel.char || !pixel.char) { + pixel.char = pixel.burnt +} +if (!isEmpty(pixel.x, pixel.y-1, true)) { + var hitPixel = pixelMap[pixel.x][pixel.y-1] + if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { + if (hitPixel.oxygen < pixel.oxygen) { + hitPixel.oxygen += (elements[pixel.element].oxygTrans) + pixel.oxygen -= (elements[pixel.element].oxygTrans) + } + if (hitPixel.nutrition < pixel.nutrition) { + hitPixel.nutrition += elements[pixel.element].nutrTrans + pixel.nutrition -= elements[pixel.element].nutrTrans + } + if (hitPixel.speed < pixel.speed) { + hitPixel.speed += 1 + pixel.speed -= 1 + } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } + if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burnt-- + } + if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burning = false + } + } +} +if (!isEmpty(pixel.x, pixel.y+1, true)) { + var hitPixel = pixelMap[pixel.x][pixel.y+1] + if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { + if (hitPixel.oxygen < pixel.oxygen) { + hitPixel.oxygen += (elements[pixel.element].oxygTrans) + pixel.oxygen -= (elements[pixel.element].oxygTrans) + } + if (hitPixel.nutrition < pixel.nutrition) { + hitPixel.nutrition += elements[pixel.element].nutrTrans + pixel.nutrition -= elements[pixel.element].nutrTrans + } + if (hitPixel.speed < pixel.speed) { + hitPixel.speed += 1 + pixel.speed -= 1 + } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } + if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burnt-- + } + if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burning = false + } + } +} +if (!isEmpty(pixel.x-1, pixel.y, true)) { + var hitPixel = pixelMap[pixel.x-1][pixel.y] + if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { + if (hitPixel.oxygen < pixel.oxygen) { + hitPixel.oxygen += (elements[pixel.element].oxygTrans) + pixel.oxygen -= (elements[pixel.element].oxygTrans) + } + if (hitPixel.nutrition < pixel.nutrition) { + hitPixel.nutrition += elements[pixel.element].nutrTrans + pixel.nutrition -= elements[pixel.element].nutrTrans + } + if (hitPixel.speed < pixel.speed) { + hitPixel.speed += 1 + pixel.speed -= 1 + } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } + if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burnt-- + } + if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burning = false + } + } +} +if (!isEmpty(pixel.x+1, pixel.y, true)) { + var hitPixel = pixelMap[pixel.x+1][pixel.y] + if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { + if (hitPixel.oxygen < pixel.oxygen) { + hitPixel.oxygen += (elements[pixel.element].oxygTrans) + pixel.oxygen -= (elements[pixel.element].oxygTrans) + } + if (hitPixel.nutrition < pixel.nutrition) { + hitPixel.nutrition += elements[pixel.element].nutrTrans + pixel.nutrition -= elements[pixel.element].nutrTrans + } + if (hitPixel.speed < pixel.speed) { + hitPixel.speed += 1 + pixel.speed -= 1 + } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } + if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burnt-- + } + if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burning = false + } + } +} +} + +doBioBlood = function(pixel) { +if (Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050)) && Math.random() < 0.001) { + for (var i = 0; i < squareCoords.length; i++) { + var coords = squareCoords[i]; + var x = pixel.x + coords[0]; + var y = pixel.y + coords[1]; + if (isEmpty(x,y)) { + createPixel("flesh",x,y); + } + } +} +if ((Math.random() > (elements[pixel.element].ageRate) && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0) || Math.random() > 0.5 && Math.random() < (pixel.burnt / 10) ) { + pixel.nutrition-- + pixel.oxygen-- +} +if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { + changePixel(pixel,elements[pixel.element].bleed); +} +if (pixel.nutrition === null || isNaN(pixel.nutrition)) { + pixel.nutrition = 500 +} +if (pixel.oxygen === null || isNaN(pixel.oxygen)) { + pixel.oxygen = 500 +} +if (pixel.speed === null || isNaN(pixel.speed)) { + pixel.speed = 0 +} +if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false +} +if ((pixel.temp > 66 || pixel.burning) && Math.random() > 0.95) { + if (!pixel.burnt) { pixel.burnt = 1 } + else { pixel.burnt ++ } +} +if (pixel.char != pixel.burnt && pixel.burnt > pixel.char || !pixel.char) { + pixel.char = pixel.burnt +} +if (!isEmpty(pixel.x, pixel.y-1, true)) { + var hitPixel = pixelMap[pixel.x][pixel.y-1] + if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { + if (hitPixel.oxygen < pixel.oxygen) { + if (pixel.heartAttached === true) { + hitPixel.oxygen += (elements[pixel.element].oxygTrans + 10) + pixel.oxygen -= (elements[pixel.element].oxygTrans + 9) + } + else { + hitPixel.oxygen += (elements[pixel.element].oxygTrans) + pixel.oxygen -= (elements[pixel.element].oxygTrans) + } + } + if (hitPixel.nutrition < pixel.nutrition) { + if (pixel.heartAttached === true) { + hitPixel.nutrition += (elements[pixel.element].nutrTrans + 10) + pixel.nutrition -= (elements[pixel.element].nutrTrans + 10) + } + else { + hitPixel.nutrition += (elements[pixel.element].nutrTrans) + pixel.nutrition -= (elements[pixel.element].nutrTrans) + } + } + if (hitPixel.speed < pixel.speed) { + hitPixel.speed += 1 + pixel.speed -= 1 + } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } + if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burnt-- + } + if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burning = false + } + if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) { + hitPixel.heartAttached = true + } + } +} +else if (isEmpty(pixel.x, pixel.y-1) && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { + if (Math.random() > 0.95) { + createPixel(elements[pixel.element].bleed,pixel.x,pixel.y-1) + } + pixel.oxygen -= 50 + pixel.nutrition -= 50 +} +if (!isEmpty(pixel.x, pixel.y+1, true)) { + var hitPixel = pixelMap[pixel.x][pixel.y+1] + if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { + if (hitPixel.oxygen < pixel.oxygen) { + if (pixel.heartAttached === true) { + hitPixel.oxygen += (elements[pixel.element].oxygTrans + 10) + pixel.oxygen -= (elements[pixel.element].oxygTrans + 9) + } + else { + hitPixel.oxygen += (elements[pixel.element].oxygTrans) + pixel.oxygen -= (elements[pixel.element].oxygTrans) + } + } + if (hitPixel.nutrition < pixel.nutrition) { + if (pixel.heartAttached === true) { + hitPixel.nutrition += (elements[pixel.element].nutrTrans + 10) + pixel.nutrition -= (elements[pixel.element].nutrTrans + 10) + } + else { + hitPixel.nutrition += (elements[pixel.element].nutrTrans) + pixel.nutrition -= (elements[pixel.element].nutrTrans) + } + } + if (hitPixel.speed < pixel.speed) { + hitPixel.speed += 1 + pixel.speed -= 1 + } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } + if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burnt-- + } + if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burning = false + } + if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) { + hitPixel.heartAttached = true + } + } +} +else if (isEmpty(pixel.x, pixel.y+1) && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { + if (Math.random() > 0.95) { + createPixel(elements[pixel.element].bleed,pixel.x,pixel.y+1) + } + pixel.oxygen -= 50 + pixel.nutrition -= 50 +} +if (!isEmpty(pixel.x-1, pixel.y, true)) { + var hitPixel = pixelMap[pixel.x-1][pixel.y] + if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { + if (hitPixel.oxygen < pixel.oxygen) { + if (pixel.heartAttached === true) { + hitPixel.oxygen += (elements[pixel.element].oxygTrans + 10) + pixel.oxygen -= (elements[pixel.element].oxygTrans + 9) + } + else { + hitPixel.oxygen += (elements[pixel.element].oxygTrans) + pixel.oxygen -= (elements[pixel.element].oxygTrans) + } + } + if (hitPixel.nutrition < pixel.nutrition) { + if (pixel.heartAttached === true) { + hitPixel.nutrition += (elements[pixel.element].nutrTrans + 10) + pixel.nutrition -= (elements[pixel.element].nutrTrans + 10) + } + else { + hitPixel.nutrition += (elements[pixel.element].nutrTrans) + pixel.nutrition -= (elements[pixel.element].nutrTrans) + } + } + if (hitPixel.speed < pixel.speed) { + hitPixel.speed += 2 + pixel.speed -= 2 + } + if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) { + hitPixel.heartAttached = true + } + } +} +else if (isEmpty(pixel.x-1, pixel.y) && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { + if (Math.random() > 0.95) { + createPixel(elements[pixel.element].bleed,pixel.x-1,pixel.y) + } + pixel.oxygen -= 50 + pixel.nutrition -= 50 +} +if (!isEmpty(pixel.x+1, pixel.y, true)) { + var hitPixel = pixelMap[pixel.x+1][pixel.y] + if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { + if (hitPixel.oxygen < pixel.oxygen) { + if (pixel.heartAttached === true) { + hitPixel.oxygen += (elements[pixel.element].oxygTrans + 10) + pixel.oxygen -= (elements[pixel.element].oxygTrans + 9) + } + else { + hitPixel.oxygen += (elements[pixel.element].oxygTrans) + pixel.oxygen -= (elements[pixel.element].oxygTrans) + } + } + if (hitPixel.nutrition < pixel.nutrition) { + if (pixel.heartAttached === true) { + hitPixel.nutrition += (elements[pixel.element].nutrTrans + 10) + pixel.nutrition -= (elements[pixel.element].nutrTrans + 10) + } + else { + hitPixel.nutrition += (elements[pixel.element].nutrTrans) + pixel.nutrition -= (elements[pixel.element].nutrTrans) + } + } + if (hitPixel.speed < pixel.speed) { + hitPixel.speed += 1 + pixel.speed -= 1 + } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } + if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burnt-- + } + if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burning = false + } + if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) { + hitPixel.heartAttached = true + } + } +} +else if (isEmpty(pixel.x+1, pixel.y) && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { + if (Math.random() > 0.95) { + createPixel(elements[pixel.element].bleed,pixel.x+1,pixel.y) + } + pixel.oxygen -= 50 + pixel.nutrition -= 50 +} +} + +doBioBone = function(pixel){ +if ((Math.random() > 0.995 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 55 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0) || Math.random() > 0.85 && Math.random() < (pixel.burnt / 100) || Math.random() > 0.5 && Math.random() < (pixel.char / 100)) { + pixel.nutrition-- + pixel.oxygen-- +} +if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { + if (elements[pixel.element].isMultiDie === true) { + if (pixel.temp > 95) { + if (Math.random() < 0.75) { + changePixel(pixel,elements[pixel.element].normDie); + } + else { + changePixel(pixel,elements[pixel.element].heatDie); + } + } + else if (pixel.temp < -15) { + if (Math.random() < 0.75) { + changePixel(pixel,elements[pixel.element].normDie); + } + else { + changePixel(pixel,elements[pixel.element].coldDie); + } + } + else { + if (Math.random() < 0.999) { + changePixel(pixel,elements[pixel.element].normDie); + } + else { + changePixel(pixel,elements[pixel.element].roomDie); + } + } + } + else if (elements[pixel.element].isMultiDie === false) { + if (Math.random() < 0.75) { + changePixel(pixel,elements[pixel.element].normDie); + } + else { + changePixel(pixel,elements[pixel.element].otherDie); + } + } +} +if (pixel.nutrition === null || isNaN(pixel.nutrition)) { + pixel.nutrition = 500 +} +if (pixel.oxygen === null || isNaN(pixel.oxygen)) { + pixel.oxygen = 500 +} +if (pixel.speed === null || isNaN(pixel.speed)) { + pixel.speed = 0 +} +if (pixel.immune === true && pixel.poisoned != false) { + pixel.poisoned = false +} +if ((pixel.temp > 66 || pixel.burning) && Math.random() > 0.95) { + if (!pixel.burnt) { pixel.burnt = 1 } + else { pixel.burnt ++ } +} +if (pixel.char != pixel.burnt && pixel.burnt > pixel.char || !pixel.char) { + pixel.char = pixel.burnt +} +if (!isEmpty(pixel.x, pixel.y-1, true)) { + var hitPixel = pixelMap[pixel.x][pixel.y-1] + if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { + if (hitPixel.oxygen < pixel.oxygen) { + hitPixel.oxygen += (elements[pixel.element].oxygTrans) + pixel.oxygen -= (elements[pixel.element].oxygTrans) + } + if (hitPixel.nutrition < pixel.nutrition) { + hitPixel.nutrition += elements[pixel.element].nutrTrans + pixel.nutrition -= elements[pixel.element].nutrTrans + } + if (hitPixel.speed < pixel.speed) { + hitPixel.speed += 1 + pixel.speed -= 1 + } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } + if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burnt-- + } + if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burning = false + } + } +} +if (!isEmpty(pixel.x, pixel.y+1, true)) { + var hitPixel = pixelMap[pixel.x][pixel.y+1] + if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { + if (hitPixel.oxygen < pixel.oxygen) { + hitPixel.oxygen += (elements[pixel.element].oxygTrans) + pixel.oxygen -= (elements[pixel.element].oxygTrans) + } + if (hitPixel.nutrition < pixel.nutrition) { + hitPixel.nutrition += elements[pixel.element].nutrTrans + pixel.nutrition -= elements[pixel.element].nutrTrans + } + if (hitPixel.speed < pixel.speed) { + hitPixel.speed += 1 + pixel.speed -= 1 + } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } + if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burnt-- + } + if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burning = false + } + } +} +if (!isEmpty(pixel.x-1, pixel.y, true)) { + var hitPixel = pixelMap[pixel.x-1][pixel.y] + if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { + if (hitPixel.oxygen < pixel.oxygen) { + hitPixel.oxygen += (elements[pixel.element].oxygTrans) + pixel.oxygen -= (elements[pixel.element].oxygTrans) + } + if (hitPixel.nutrition < pixel.nutrition) { + hitPixel.nutrition += elements[pixel.element].nutrTrans + pixel.nutrition -= elements[pixel.element].nutrTrans + } + if (hitPixel.speed < pixel.speed) { + hitPixel.speed += 1 + pixel.speed -= 1 + } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } + if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burnt-- + } + if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burning = false + } + } +} +if (!isEmpty(pixel.x+1, pixel.y, true)) { + var hitPixel = pixelMap[pixel.x+1][pixel.y] + if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { + if (hitPixel.oxygen < pixel.oxygen) { + hitPixel.oxygen += (elements[pixel.element].oxygTrans) + pixel.oxygen -= (elements[pixel.element].oxygTrans) + } + if (hitPixel.nutrition < pixel.nutrition) { + hitPixel.nutrition += elements[pixel.element].nutrTrans + pixel.nutrition -= elements[pixel.element].nutrTrans + } + if (hitPixel.speed < pixel.speed) { + hitPixel.speed += 1 + pixel.speed -= 1 + } + if (hitPixel.poisoned != true && pixel.poisoned == true) { + hitPixel.poisoned = true + } + if (hitPixel.immune != true && pixel.immune == true) { + hitPixel.poisoned = false + hitPixel.immune = true + } + if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burnt-- + } + if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burning = false + } + } +} +} + elements.flesh = { color: ["#9e4839","#ba6449"], category: "structural", behavior: behaviors.WALL, + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } + doBioNorm(pixel); doDefaults(pixel); }, density: 2710, @@ -322,8 +800,10 @@ elements.flesh = { speed: 0, poisoned: false, immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -331,6 +811,13 @@ elements.epidermis = { color: "#f7ead0", category: "structural", behavior: behaviors.WALL, + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "dust", + roomDie: "meat", + coldDie: "dust", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, @@ -354,142 +841,8 @@ elements.epidermis = { if (pixel.temp < 15 && Math.random() < 0.1) { pixel.temp += 1; } + doBioNorm(pixel); doDefaults(pixel); - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.999) { - changePixel(pixel,"dust"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"dust"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"dust"); - } - else { - changePixel(pixel,"meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } }, density: 2710, state: "solid", @@ -513,8 +866,10 @@ elements.epidermis = { speed: 0, poisoned: false, immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -522,6 +877,13 @@ elements.dermis = { color: "#CFA08B", category: "structural", behavior: behaviors.WALL, + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, @@ -541,144 +903,7 @@ elements.dermis = { } } doDefaults(pixel); - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -702,8 +927,10 @@ elements.dermis = { speed: 0, poisoned: false, immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -711,6 +938,13 @@ elements.cloak_skin = { color: "#CFD4A5", category: "structural", behavior: behaviors.WALL, + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "dust", + roomDie: "meat", + coldDie: "dust", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, @@ -735,173 +969,7 @@ elements.cloak_skin = { pixel.temp += 1; } doDefaults(pixel); - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.999) { - changePixel(pixel,"dust"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"dust"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"dust"); - } - else { - changePixel(pixel,"meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (pixel.color != hitPixel.color) { - hitPixel.color = pixel.color - } - } - else if (elements[hitPixel.element].movable) { - if (pixel.color != hitPixel.color) { - pixel.color = hitPixel.color - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (pixel.color != hitPixel.color) { - hitPixel.color = pixel.color - } - } - else if (elements[hitPixel.element].movable) { - if (pixel.color != hitPixel.color) { - pixel.color = hitPixel.color - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (pixel.color != hitPixel.color) { - hitPixel.color = pixel.color - } - } - else if (elements[hitPixel.element].movable) { - if (pixel.color != hitPixel.color) { - pixel.color = hitPixel.color - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (pixel.color != hitPixel.color) { - hitPixel.color = pixel.color - } - } - else if (elements[hitPixel.element].movable) { - if (pixel.color != hitPixel.color) { - pixel.color = hitPixel.color - } - } - } + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -925,8 +993,10 @@ elements.cloak_skin = { speed: 0, poisoned: false, immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -934,6 +1004,13 @@ elements.cloak_dermis = { color: "#BC9F7B", category: "structural", behavior: behaviors.WALL, + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, @@ -953,176 +1030,7 @@ elements.cloak_dermis = { } } doDefaults(pixel); - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (pixel.color != hitPixel.color) { - hitPixel.color = pixel.color - } - } - else if (elements[hitPixel.element].movable) { - if (pixel.color != hitPixel.color) { - pixel.color = hitPixel.color - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (pixel.color != hitPixel.color) { - hitPixel.color = pixel.color - } - } - else if (elements[hitPixel.element].movable) { - if (pixel.color != hitPixel.color) { - pixel.color = hitPixel.color - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (pixel.color != hitPixel.color) { - hitPixel.color = pixel.color - } - } - else if (elements[hitPixel.element].movable) { - if (pixel.color != hitPixel.color) { - pixel.color = hitPixel.color - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (pixel.color != hitPixel.color) { - hitPixel.color = pixel.color - } - } - else if (elements[hitPixel.element].movable) { - if (pixel.color != hitPixel.color) { - pixel.color = hitPixel.color - } - } - } + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -1146,8 +1054,10 @@ elements.cloak_dermis = { speed: 0, poisoned: false, immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -1163,8 +1073,7 @@ elements.loose_hair = { burnInto:["smoke","smoke","fire","ash","ash","stench"], breakInto: [null,null,null,null,"dust"], state: "solid", - density: 2395, - conduct: 0.05, + density: 935, hidden: true } @@ -1400,6 +1309,13 @@ elements.hairy_skin = { color: "#ECDCC3", category: "structural", behavior: behaviors.WALL, + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "dust", + roomDie: "meat", + coldDie: "dust", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, @@ -1445,141 +1361,7 @@ elements.hairy_skin = { pixel.temp += 1; } doDefaults(pixel); - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.999) { - changePixel(pixel,"dust"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"dust"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"dust"); - } - else { - changePixel(pixel,"meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -1603,9 +1385,11 @@ elements.hairy_skin = { speed: 0, poisoned: false, immune: false, + }, isHair: true, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -1613,6 +1397,13 @@ elements.hair_dermis = { color: "#C89985", category: "structural", behavior: behaviors.WALL, + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, @@ -1641,144 +1432,7 @@ elements.hair_dermis = { } } doDefaults(pixel); - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -1802,9 +1456,11 @@ elements.hair_dermis = { speed: 0, poisoned: false, immune: false, + }, isHair: true, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -1812,6 +1468,11 @@ elements.scales = { color: "#6b839a", category: "structural", behavior: behaviors.WALL, + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: false, + normDie: "dust", + otherDie: "calcium", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, @@ -1820,144 +1481,7 @@ elements.scales = { pixel.temp -= 1; } doDefaults(pixel); - if (Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.999) { - changePixel(pixel,"dust"); - } - else { - changePixel(pixel,"calcium"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.95) { - changePixel(pixel,"dust"); - } - else { - changePixel(pixel,"calcium"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"dust"); - } - else { - changePixel(pixel,"calcium"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -1978,8 +1502,10 @@ elements.scales = { speed: 0, poisoned: false, immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -1987,6 +1513,13 @@ elements.scale_dermis = { color: "#CFA08B", category: "structural", behavior: behaviors.WALL, + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, @@ -2006,144 +1539,7 @@ elements.scale_dermis = { } } doDefaults(pixel); - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -2167,8 +1563,10 @@ elements.scale_dermis = { speed: 0, poisoned: false, immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -2176,6 +1574,13 @@ elements.bug_dermis = { color: "#C6AD5B", category: "structural", behavior: behaviors.WALL, + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, @@ -2195,144 +1600,7 @@ elements.bug_dermis = { } } doDefaults(pixel); - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -2356,8 +1624,10 @@ elements.bug_dermis = { speed: 0, poisoned: false, immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -2365,6 +1635,13 @@ elements.amphib_dermis = { color: "#9DAB6A", category: "structural", behavior: behaviors.WALL, + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, @@ -2384,144 +1661,7 @@ elements.amphib_dermis = { } } doDefaults(pixel); - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -2545,8 +1685,10 @@ elements.amphib_dermis = { speed: 0, poisoned: false, immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -2554,154 +1696,19 @@ elements.acidic_flesh = { color: ["#946231","#976E30"], category: "structural", behavior: behaviors.WALL, + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "meat", + roomDie: "acid", + coldDie: "acid", + heatDie: "acid", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else if (Math.random() < 0.5) { - changePixel(pixel,"cooked_meat"); - } - else { - changePixel(pixel,"acid"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else if (Math.random() < 0.5) { - changePixel(pixel,"frozen_meat"); - } - else { - changePixel(pixel,"acid"); - } - } - else { - if (Math.random() < 0.95) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"acid"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } + doBioNorm(pixel); + doDefaults(pixel); }, density: 2710, state: "solid", @@ -2724,8 +1731,10 @@ elements.acidic_flesh = { speed: 0, poisoned: false, immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -2733,154 +1742,19 @@ elements.slimey_flesh = { color: ["#8EA714","#96B013"], category: "structural", behavior: behaviors.WALL, + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "meat", + roomDie: "slime", + coldDie: "slime", + heatDie: "slime", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else if (Math.random() < 0.5) { - changePixel(pixel,"cooked_meat"); - } - else { - changePixel(pixel,"slime"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else if (Math.random() < 0.5) { - changePixel(pixel,"frozen_meat"); - } - else { - changePixel(pixel,"slime"); - } - } - else { - if (Math.random() < 0.95) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"slime"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } + doBioNorm(pixel); + doDefaults(pixel); }, density: 2710, state: "solid", @@ -2903,8 +1777,10 @@ elements.slimey_flesh = { speed: 0, poisoned: false, immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -2913,80 +1789,22 @@ elements.cloak_flesh = { grain: 0, category: "structural", behavior: behaviors.WALL, + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { doDefaults(pixel); - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } + doBioNorm(pixel); if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (pixel.color != hitPixel.color) { - hitPixel.color = pixel.color - } - } - else if (elements[hitPixel.element].movable) { + var hitPixel = pixelMap[pixel.x][pixel.y-1] + if (elements[hitPixel.element].movable) { if (pixel.color != hitPixel.color) { pixel.color = hitPixel.color } @@ -2994,31 +1812,7 @@ elements.cloak_flesh = { } if (!isEmpty(pixel.x, pixel.y+1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (pixel.color != hitPixel.color) { - hitPixel.color = pixel.color - } - } - else if (elements[hitPixel.element].movable) { + if (elements[hitPixel.element].movable) { if (pixel.color != hitPixel.color) { pixel.color = hitPixel.color } @@ -3026,31 +1820,7 @@ elements.cloak_flesh = { } if (!isEmpty(pixel.x-1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (pixel.color != hitPixel.color) { - hitPixel.color = pixel.color - } - } - else if (elements[hitPixel.element].movable) { + if (elements[hitPixel.element].movable) { if (pixel.color != hitPixel.color) { pixel.color = hitPixel.color } @@ -3058,31 +1828,7 @@ elements.cloak_flesh = { } if (!isEmpty(pixel.x+1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (pixel.color != hitPixel.color) { - hitPixel.color = pixel.color - } - } - else if (elements[hitPixel.element].movable) { + if (elements[hitPixel.element].movable) { if (pixel.color != hitPixel.color) { pixel.color = hitPixel.color } @@ -3111,8 +1857,10 @@ elements.cloak_flesh = { speed: 0, poisoned: false, immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -3120,147 +1868,19 @@ elements.adipose = { color: ["#C3A375","#B9945A"], category: "nutrition", behavior: behaviors.WALL, + nutrTrans: 5, + oxygTrans: 15, + isMultiDie: true, + normDie: "meat", + roomDie: "grease", + coldDie: "fat", + heatDie: "grease", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if (Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0 || pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) { - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"grease"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"fat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"grease"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 1000 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 15 - pixel.oxygen -= 15 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 5 - pixel.nutrition -= 5 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 15 - pixel.oxygen -= 15 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 5 - pixel.nutrition -= 5 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 15 - pixel.oxygen -= 15 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 5 - pixel.nutrition -= 5 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 15 - pixel.oxygen -= 15 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 5 - pixel.nutrition -= 5 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } + doDefaults(pixel); + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -3282,6 +1902,7 @@ elements.adipose = { nutrition: 1005, }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -3292,191 +1913,38 @@ elements.acid_vessel = { "SW:acid_vessel%1|XX|SW:acid_vessel%1", "XX|SW:acid_vessel%1|XX", ], + nutrTrans: 20, + oxygTrans: 25, + isMultiDie: false, + normDie: "acid", + otherDie: "acid", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if (Math.random() > 0.975 && pixel.nutrition > 0 && pixel.oxygen > 0 || pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - changePixel(pixel,"acid"); - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 25 - pixel.oxygen -= 25 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - else if (isEmpty(pixel.x, pixel.y-1) && Math.random() > 0.75) { + doBioNorm(pixel); + if (isEmpty(pixel.x, pixel.y-1) && Math.random() > 0.75) { if (Math.random() > 0.95) { createPixel("acid",pixel.x,pixel.y-1) } pixel.oxygen -= 50 pixel.nutrition -= 50 } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 25 - pixel.oxygen -= 25 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - else if (isEmpty(pixel.x, pixel.y+1) && Math.random() > 0.75) { + if (isEmpty(pixel.x, pixel.y+1) && Math.random() > 0.75) { if (Math.random() > 0.95) { createPixel("acid",pixel.x,pixel.y+1) } pixel.oxygen -= 50 pixel.nutrition -= 50 } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 25 - pixel.oxygen -= 25 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - else if (isEmpty(pixel.x-1, pixel.y) && Math.random() > 0.75) { + if (isEmpty(pixel.x-1, pixel.y) && Math.random() > 0.75) { if (Math.random() > 0.95) { createPixel("acid",pixel.x-1,pixel.y) } pixel.oxygen -= 50 pixel.nutrition -= 50 } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 25 - pixel.oxygen -= 25 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - else if (isEmpty(pixel.x+1, pixel.y) && Math.random() > 0.75) { + if (isEmpty(pixel.x+1, pixel.y) && Math.random() > 0.75) { if (Math.random() > 0.95) { createPixel("acid",pixel.x+1,pixel.y) } @@ -3490,6 +1958,7 @@ elements.acid_vessel = { speed: 0, poisoned: false, immune: false, + }, tempHigh: 175, stateHigh: ["acid_gas","acid_gas","acid_gas","cooked_meat","cooked_meat"], @@ -3505,6 +1974,7 @@ elements.acid_vessel = { conduct: .001, movable: false, isBio: true, + renderer: renderPresets.FLESHBURN, } elements.heart = { @@ -3514,77 +1984,22 @@ elements.heart = { "XX|XX|XX", "XX|XX|XX", ], + nutrTrans: 20, + oxygTrans: 25, + isMultiDie: true, + normDie: "blood", + roomDie: "meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.975 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"blood"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"blood"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.95) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"blood"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } + doBioNorm(pixel); if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 25 - pixel.oxygen -= 25 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (elements[hitPixel.element].isBlood === true && hitPixel.heartAttached === false && Math.random() > 0.5) { - hitPixel.heartAttached = true - } + if (elements[hitPixel.element].isBlood === true && Math.random() > 0.5) { + hitPixel.heartAttached = true } } else if (isEmpty(pixel.x, pixel.y-1) && Math.random() > 0.75) { @@ -3596,29 +2011,8 @@ elements.heart = { } if (!isEmpty(pixel.x, pixel.y+1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 25 - pixel.oxygen -= 25 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (elements[hitPixel.element].isBlood === true && hitPixel.heartAttached === false && Math.random() > 0.5) { - hitPixel.heartAttached = true - } + if (elements[hitPixel.element].isBlood === true && Math.random() > 0.5) { + hitPixel.heartAttached = true } } else if (isEmpty(pixel.x, pixel.y+1) && Math.random() > 0.75) { @@ -3630,29 +2024,8 @@ elements.heart = { } if (!isEmpty(pixel.x-1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 25 - pixel.oxygen -= 25 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (elements[hitPixel.element].isBlood === true && hitPixel.heartAttached === false && Math.random() > 0.5) { - hitPixel.heartAttached = true - } + if (elements[hitPixel.element].isBlood === true && Math.random() > 0.5) { + hitPixel.heartAttached = true } } else if (isEmpty(pixel.x-1, pixel.y) && Math.random() > 0.75) { @@ -3664,29 +2037,8 @@ elements.heart = { } if (!isEmpty(pixel.x+1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 25 - pixel.oxygen -= 25 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (elements[hitPixel.element].isBlood === true && hitPixel.heartAttached === false && Math.random() > 0.5) { - hitPixel.heartAttached = true - } + if (elements[hitPixel.element].isBlood === true && Math.random() > 0.5) { + hitPixel.heartAttached = true } } else if (isEmpty(pixel.x+1, pixel.y) && Math.random() > 0.75) { @@ -3703,6 +2055,7 @@ elements.heart = { speed: 0, poisoned: false, immune: false, + }, tempHigh: 175, stateHigh: "meat", @@ -3718,91 +2071,29 @@ elements.heart = { conduct: .001, movable: false, isBio: true, + renderer: renderPresets.FLESHBURN, } elements.kidney = { color: ["#AB1354","#89212E","#74272E"], - behavior: [ - "XX|XX|XX", - "XX|XX|XX", - "XX|XX|XX", - ], + behavior: behaviors.WALL, + nutrTrans: 20, + oxygTrans: 25, + isMultiDie: true, + normDie: "urine", + roomDie: "meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.975 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() > 0.9 && pixel.pee > 0) { - changePixel(pixel,"urine"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() > 0.9 && pixel.pee > 0) { - changePixel(pixel,"urine"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() > 0.9 && pixel.pee > 0) { - changePixel(pixel,"urine"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } + doBioNorm(pixel); if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 25 - pixel.oxygen -= 25 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (hitPixel.pee < pixel.pee && elements[hitPixel.element].isKidney === true) { - hitPixel.pee += 1 - pixel.pee -= 1 - } - if (elements[hitPixel.element].isBlood === true && Math.random() < 0.025 && (hitPixel.speed < 1 || Math.random() < 0.00025) && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { - hitPixel.speed++ - pixel.pee += 1 - } + if (elements[hitPixel.element].isBlood === true && Math.random() < 0.025 && (hitPixel.speed < 1 || Math.random() < 0.00025) && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { + hitPixel.speed++ + pixel.pee += 1 } } else if (pixel.pee > 4 && Math.random() > 0.95) { @@ -3813,34 +2104,9 @@ elements.kidney = { } if (!isEmpty(pixel.x, pixel.y+1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 25 - pixel.oxygen -= 25 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (hitPixel.pee < pixel.pee && elements[hitPixel.element].isKidney === true) { - hitPixel.pee += 1 - pixel.pee -= 1 - } - if (elements[hitPixel.element].isBlood === true && Math.random() < 0.025 && (hitPixel.speed < 1 || Math.random() < 0.00025) && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { - hitPixel.speed++ - pixel.pee += 1 - } + if (elements[hitPixel.element].isBlood === true && Math.random() < 0.025 && (hitPixel.speed < 1 || Math.random() < 0.00025) && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { + hitPixel.speed++ + pixel.pee += 1 } } else if (pixel.pee > 4 && Math.random() > 0.95) { @@ -3851,34 +2117,9 @@ elements.kidney = { } if (!isEmpty(pixel.x-1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 25 - pixel.oxygen -= 25 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (hitPixel.pee < pixel.pee && elements[hitPixel.element].isKidney === true) { - hitPixel.pee += 1 - pixel.pee -= 1 - } - if (elements[hitPixel.element].isBlood === true && Math.random() < 0.025 && (hitPixel.speed < 1 || Math.random() < 0.00025) && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { - hitPixel.speed++ - pixel.pee += 1 - } + if (elements[hitPixel.element].isBlood === true && Math.random() < 0.025 && (hitPixel.speed < 1 || Math.random() < 0.00025) && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { + hitPixel.speed++ + pixel.pee += 1 } } else if (pixel.pee > 4 && Math.random() > 0.95) { @@ -3889,34 +2130,9 @@ elements.kidney = { } if (!isEmpty(pixel.x+1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 25 - pixel.oxygen -= 25 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (hitPixel.pee < pixel.pee && elements[hitPixel.element].isKidney === true) { - hitPixel.pee += 1 - pixel.pee -= 1 - } - if (elements[hitPixel.element].isBlood === true && Math.random() < 0.025 && (hitPixel.speed < 1 || Math.random() < 0.00025) && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { - hitPixel.speed++ - pixel.pee += 1 - } + if (elements[hitPixel.element].isBlood === true && Math.random() < 0.025 && (hitPixel.speed < 1 || Math.random() < 0.00025) && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { + hitPixel.speed++ + pixel.pee += 1 } } else if (pixel.pee > 4 && Math.random() > 0.95) { @@ -3940,6 +2156,12 @@ elements.kidney = { if (pixel.pee > 0) { drawSquare(ctx,"#E9BE3C",pixel.x,pixel.y,undefined,Math.min(0.8,pixel.pee/10)); } + if (!viewInfo[view].colorEffects || !pixel.char || pixel.char < 11) { return } + var max = 25; + var ratio = ((pixel.char/max*100)|0)/100; + if (ratio < 0.5) { return } + if (ratio > 1) { ratio = 1 } + drawSquare(ctx,"#000000",pixel.x,pixel.y,undefined,Math.min(0.8,(ratio-0.5)*0.8)); }, tempHigh: 175, stateHigh: "meat", @@ -3960,156 +2182,22 @@ elements.kidney = { elements.liver = { color: ["#6c2e1f","#7B2827","#702B27"], - behavior: [ - "XX|XX|XX", - "XX|XX|XX", - "XX|XX|XX", - ], + behavior: behaviors.WALL, + nutrTrans: 20, + oxygTrans: 25, + isMultiDie: true, + normDie: "rotten_meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.975 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.90) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } + doBioNorm(pixel); if (pixel.speed < -1 && Math.random() < (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { pixel.speed += 1 } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 25 - pixel.oxygen -= 25 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 25 - pixel.oxygen -= 25 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 25 - pixel.oxygen -= 25 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 25 - pixel.oxygen -= 25 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } }, properties: { oxygen: 1000, @@ -4132,6 +2220,7 @@ elements.liver = { conduct: .001, movable: false, isBio: true, + renderer: renderPresets.FLESHBURN, } elements.blood_vessel = { @@ -4141,216 +2230,16 @@ elements.blood_vessel = { "SW:blood_vessel%1|XX|SW:blood_vessel%1", "XX|SW:blood_vessel%1|XX", ], + ageRate: 0.975, + nutrTrans: 20, + oxygTrans: 25, + isMultiDie: true, + bleed: "blood", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if (Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050)) && Math.random() < 0.001) { - for (var i = 0; i < squareCoords.length; i++) { - var coords = squareCoords[i]; - var x = pixel.x + coords[0]; - var y = pixel.y + coords[1]; - if (isEmpty(x,y)) { - createPixel("flesh",x,y); - } - } - } - if (Math.random() > 0.975 && pixel.nutrition > 0 && pixel.oxygen > 0 || pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) { - pixel.nutrition-- - pixel.oxygen-- - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - changePixel(pixel,"blood"); - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - if (pixel.heartAttached === true) { - hitPixel.oxygen += 35 - pixel.oxygen -= 34 - } - else { - hitPixel.oxygen += 25 - pixel.oxygen -= 25 - } - } - if (hitPixel.nutrition < pixel.nutrition) { - if (pixel.heartAttached === true) { - hitPixel.nutrition += 30 - pixel.nutrition -= 29 - } - else { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) { - hitPixel.heartAttached = true - } - } - } - else if (isEmpty(pixel.x, pixel.y-1) && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { - if (Math.random() > 0.95) { - createPixel("blood",pixel.x,pixel.y-1) - } - pixel.oxygen -= 50 - pixel.nutrition -= 50 - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - if (pixel.heartAttached === true) { - hitPixel.oxygen += 35 - pixel.oxygen -= 35 - } - else { - hitPixel.oxygen += 25 - pixel.oxygen -= 25 - } - } - if (hitPixel.nutrition < pixel.nutrition) { - if (pixel.heartAttached === true) { - hitPixel.nutrition += 30 - pixel.nutrition -= 30 - } - else { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) { - hitPixel.heartAttached = true - } - } - } - else if (isEmpty(pixel.x, pixel.y+1) && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { - if (Math.random() > 0.95) { - createPixel("blood",pixel.x,pixel.y+1) - } - pixel.oxygen -= 50 - pixel.nutrition -= 50 - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - if (pixel.heartAttached === true) { - hitPixel.oxygen += 35 - pixel.oxygen -= 35 - } - else { - hitPixel.oxygen += 25 - pixel.oxygen -= 25 - } - } - if (hitPixel.nutrition < pixel.nutrition) { - if (pixel.heartAttached === true) { - hitPixel.nutrition += 30 - pixel.nutrition -= 30 - } - else { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 2 - pixel.speed -= 2 - } - if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) { - hitPixel.heartAttached = true - } - } - } - else if (isEmpty(pixel.x-1, pixel.y) && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { - if (Math.random() > 0.95) { - createPixel("blood",pixel.x-1,pixel.y) - } - pixel.oxygen -= 50 - pixel.nutrition -= 50 - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - if (pixel.heartAttached === true) { - hitPixel.oxygen += 35 - pixel.oxygen -= 35 - } - else { - hitPixel.oxygen += 25 - pixel.oxygen -= 25 - } - } - if (hitPixel.nutrition < pixel.nutrition) { - if (pixel.heartAttached === true) { - hitPixel.nutrition += 30 - pixel.nutrition -= 30 - } - else { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) { - hitPixel.heartAttached = true - } - } - } - else if (isEmpty(pixel.x+1, pixel.y) && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { - if (Math.random() > 0.95) { - createPixel("blood",pixel.x+1,pixel.y) - } - pixel.oxygen -= 50 - pixel.nutrition -= 50 - } + doBioBlood(pixel); }, properties: { oxygen: 1000, @@ -4360,6 +2249,33 @@ elements.blood_vessel = { immune: false, heartAttached: false, }, + reactions: { + "dirt": { elem2: "infected_vessel", chance:0.005 }, + "dust": { elem1: null, elem2: "infected_vessel", chance:0.005 }, + "ash": { elem1: null, elem2: "infected_vessel", chance:0.005 }, + "mud": { elem2: "infected_vessel", chance:0.005 }, + "sand": { elem2: "infected_vessel", chance:0.005 }, + "gravel": { elem2: "infected_vessel", chance:0.005 }, + "brick_rubble": { elem2: "infected_vessel", chance:0.005 }, + "glitter": { elem1: null, elem2: "infected_vessel", chance:0.001 }, + "sulfur": { elem2: "infected_vessel", chance:0.005 }, + "rust": { elem1: ["meat","infected_vessel","infected_vessel","infected_vessel","blood","blood"], chance:0.005 }, + "mercury": { elem2: null, elem1: "infected_vessel", func:function(pixel1,pixel2){ if (pixel1.poisoned != true) { + pixel1.poisoned = true; + } }, chance:0.005 }, + "vaccine": { elem2: null, func:function(pixel1,pixel2){ if (pixel1.immune != true) { + pixel1.immune = true; + } }, chance:0.01 }, + "antidote": { elem2: null, func:function(pixel1,pixel2){ if (pixel1.immune != true) { + pixel1.immune = true; + } }, chance:0.02 }, + "poison": { elem2: null, func:function(pixel1,pixel2){ if (pixel1.poisoned != true) { + pixel1.poisoned = true; + } }, chance:0.02 }, + "cyanide": { elem2: null, func:function(pixel1,pixel2){ if (pixel1.poisoned != true) { + pixel1.poisoned = true; + } }, chance:0.01 }, + }, tempHigh: 175, stateHigh: "meat", tempLow: -50, @@ -4373,7 +2289,9 @@ elements.blood_vessel = { density: 1250, conduct: .001, movable: false, + extinguish: true, isBio: true, + renderer: renderPresets.FLESHBURN, isBlood: true, } @@ -4384,219 +2302,16 @@ elements.infected_vessel = { "SW:blood_vessel%1|XX|SW:blood_vessel%1", "XX|SW:blood_vessel%1|XX", ], + ageRate: 0.5, + nutrTrans: 5, + oxygTrans: 10, + isMultiDie: true, + bleed: "infection", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if (Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050)) && Math.random() < 0.001) { - for (var i = 0; i < squareCoords.length; i++) { - var coords = squareCoords[i]; - var x = pixel.x + coords[0]; - var y = pixel.y + coords[1]; - if (isEmpty(x,y)) { - createPixel("flesh",x,y); - } - } - } - if (Math.random() > 0.5 && pixel.nutrition > 0 && pixel.oxygen > 0 || pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) { - pixel.nutrition -= 5 - pixel.oxygen -= 5 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - changePixel(pixel,"infection"); - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - if (pixel.heartAttached === true) { - hitPixel.oxygen += 35 - pixel.oxygen -= 40 - } - else { - hitPixel.oxygen += 25 - pixel.oxygen -= 30 - } - } - if (hitPixel.nutrition < pixel.nutrition) { - if (pixel.heartAttached === true) { - hitPixel.nutrition += 30 - pixel.nutrition -= 35 - } - else { - hitPixel.nutrition += 20 - pixel.nutrition -= 25 - } - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 2 - } - if (elements[hitPixel.element].isBlood === true && Math.random() > 0.5) { - if (Math.random() > 0.95) { - hitPixel.element = "infected_vessel" - hitPixel.color = elements.infected_vessel.color - } - } - if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) { - hitPixel.heartAttached = true - } - } - } - else if (isEmpty(pixel.x, pixel.y-1) && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { - if (Math.random() > 0.95) { - createPixel("infection",pixel.x,pixel.y-1) - } - pixel.oxygen -= 50 - pixel.nutrition -= 50 - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - if (pixel.heartAttached === true) { - hitPixel.oxygen += 35 - pixel.oxygen -= 40 - } - else { - hitPixel.oxygen += 25 - pixel.oxygen -= 30 - } - } - if (hitPixel.nutrition < pixel.nutrition) { - if (pixel.heartAttached === true) { - hitPixel.nutrition += 30 - pixel.nutrition -= 35 - } - else { - hitPixel.nutrition += 20 - pixel.nutrition -= 25 - } - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 2 - } - if (elements[hitPixel.element].isBlood === true && Math.random() > 0.5) { - if (Math.random() > 0.95) { - hitPixel.element = "infected_vessel" - hitPixel.color = elements.infected_vessel.color - } - } - if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) { - hitPixel.heartAttached = true - } - } - } - else if (isEmpty(pixel.x, pixel.y+1) && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { - if (Math.random() > 0.95) { - createPixel("infection",pixel.x,pixel.y+1) - } - pixel.oxygen -= 50 - pixel.nutrition -= 50 - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - if (pixel.heartAttached === true) { - hitPixel.oxygen += 35 - pixel.oxygen -= 40 - } - else { - hitPixel.oxygen += 25 - pixel.oxygen -= 30 - } - } - if (hitPixel.nutrition < pixel.nutrition) { - if (pixel.heartAttached === true) { - hitPixel.nutrition += 30 - pixel.nutrition -= 35 - } - else { - hitPixel.nutrition += 20 - pixel.nutrition -= 25 - } - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 2 - } - if (elements[hitPixel.element].isBlood === true && Math.random() > 0.5) { - if (Math.random() > 0.95) { - hitPixel.element = "infected_vessel" - hitPixel.color = elements.infected_vessel.color - } - } - if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) { - hitPixel.heartAttached = true - } - } - } - else if (isEmpty(pixel.x-1, pixel.y) && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { - if (Math.random() > 0.95) { - createPixel("infection",pixel.x-1,pixel.y) - } - pixel.oxygen -= 50 - pixel.nutrition -= 50 - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - if (pixel.heartAttached === true) { - hitPixel.oxygen += 35 - pixel.oxygen -= 40 - } - else { - hitPixel.oxygen += 25 - pixel.oxygen -= 30 - } - } - if (hitPixel.nutrition < pixel.nutrition) { - if (pixel.heartAttached === true) { - hitPixel.nutrition += 30 - pixel.nutrition -= 35 - } - else { - hitPixel.nutrition += 20 - pixel.nutrition -= 25 - } - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 2 - } - if (elements[hitPixel.element].isBlood === true && Math.random() > 0.5) { - if (Math.random() > 0.95) { - hitPixel.element = "infected_vessel" - hitPixel.color = elements.infected_vessel.color - } - } - if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) { - hitPixel.heartAttached = true - } - } - } - else if (isEmpty(pixel.x+1, pixel.y) && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { - if (Math.random() > 0.95) { - createPixel("infection",pixel.x+1,pixel.y) - } - pixel.oxygen -= 50 - pixel.nutrition -= 50 - } + doBioBlood(pixel); }, properties: { oxygen: 1000, @@ -4604,6 +2319,7 @@ elements.infected_vessel = { speed: 0, poisoned: false, immune: false, + heartAttached: false, }, reactions: { @@ -4622,7 +2338,9 @@ elements.infected_vessel = { density: 1250, conduct: .001, movable: false, + extinguish: true, isBio: true, + renderer: renderPresets.FLESHBURN, isBlood: true, } @@ -4633,206 +2351,53 @@ elements.white_blood_cell = { "SW:blood_vessel%1|XX|SW:blood_vessel%1", "XX|SW:blood_vessel%1|XX", ], + ageRate: 0.995, + nutrTrans: 20, + oxygTrans: 25, + isMultiDie: true, + bleed: "blood", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if (Math.random() > 0.975 && pixel.nutrition > 0 && pixel.oxygen > 0) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - changePixel(pixel,"blood"); - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } + doBioBlood(pixel); if (Math.random() > 0.995 && Math.random() < (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050)) || Math.random() > 0.9995) { - hitPixel.element = "blood_vessel" - hitPixel.color = elements.blood_vessel.color + pixel.element = "blood_vessel" + pixel.color = elements.blood_vessel.color } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 25 - pixel.oxygen -= 25 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (elements[hitPixel.element].isBlood === true && Math.random() > 0.25) { - if (elements[hitPixel.element].id === elements.infected_vessel.id) { - hitPixel.element = "blood_vessel" - hitPixel.color = elements.blood_vessel.color - } - } - if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) { - hitPixel.heartAttached = true + if (elements[hitPixel.element].isBlood === true && Math.random() > 0.25) { + if (elements[hitPixel.element].id === elements.infected_vessel.id) { + hitPixel.element = "blood_vessel" + hitPixel.color = elements.blood_vessel.color } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 25 - pixel.oxygen -= 25 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (elements[hitPixel.element].isBlood === true && Math.random() > 0.25) { - if (elements[hitPixel.element].id === elements.infected_vessel.id) { - hitPixel.element = "blood_vessel" - hitPixel.color = elements.blood_vessel.color - } - } - if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) { - hitPixel.heartAttached = true + if (elements[hitPixel.element].isBlood === true && Math.random() > 0.25) { + if (elements[hitPixel.element].id === elements.infected_vessel.id) { + hitPixel.element = "blood_vessel" + hitPixel.color = elements.blood_vessel.color } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 25 - pixel.oxygen -= 25 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (elements[hitPixel.element].isBlood === true && Math.random() > 0.25) { - if (elements[hitPixel.element].id === elements.infected_vessel.id) { - hitPixel.element = "blood_vessel" - hitPixel.color = elements.blood_vessel.color - } - } - if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) { - hitPixel.heartAttached = true + if (elements[hitPixel.element].isBlood === true && Math.random() > 0.25) { + if (elements[hitPixel.element].id === elements.infected_vessel.id) { + hitPixel.element = "blood_vessel" + hitPixel.color = elements.blood_vessel.color } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 25 - pixel.oxygen -= 25 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (elements[hitPixel.element].isBlood === true && Math.random() > 0.25) { - if (elements[hitPixel.element].id === elements.infected_vessel.id) { - hitPixel.element = "blood_vessel" - hitPixel.color = elements.blood_vessel.color - } - } - if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) { - hitPixel.heartAttached = true + if (elements[hitPixel.element].isBlood === true && Math.random() > 0.25) { + if (elements[hitPixel.element].id === elements.infected_vessel.id) { + hitPixel.element = "blood_vessel" + hitPixel.color = elements.blood_vessel.color } } } @@ -4843,6 +2408,7 @@ elements.white_blood_cell = { speed: 0, poisoned: false, immune: false, + heartAttached: false, }, reactions: { @@ -4864,13 +2430,20 @@ elements.white_blood_cell = { density: 1250, conduct: .001, movable: false, + extinguish: true, isBio: true, + renderer: renderPresets.FLESHBURN, isBlood: true, } elements.eye = { color: "#451800", category: "nervous system", + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: false, + normDie: "meat", + otherDie: "salt_water", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, @@ -4878,30 +2451,7 @@ elements.eye = { doHeat(pixel); doBurning(pixel); doElectricity(pixel); - if ((Math.random() > 0.895 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (Math.random() < 0.95) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"salt_water"); - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } + doBioNorm(pixel); if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] doElectricity(hitPixel); @@ -4917,27 +2467,6 @@ elements.eye = { } pixel.saw = false } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } } if (!isEmpty(pixel.x, pixel.y+1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y+1] @@ -4954,27 +2483,6 @@ elements.eye = { } pixel.saw = false } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } } if (!isEmpty(pixel.x-1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x-1][pixel.y] @@ -4991,27 +2499,6 @@ elements.eye = { } pixel.saw = false } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } } if (!isEmpty(pixel.x+1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x+1][pixel.y] @@ -5028,27 +2515,6 @@ elements.eye = { } pixel.saw = false } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } } if (pixel.saw === true && Math.random() > 0.8) { pixel.saw = false @@ -5076,12 +2542,18 @@ elements.eye = { saw: false, }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } elements.olfactory_bulb = { color: "#8A7650", category: "nervous system", + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: false, + normDie: "meat", + otherDie: "rotten_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, @@ -5089,30 +2561,7 @@ elements.olfactory_bulb = { doHeat(pixel); doBurning(pixel); doElectricity(pixel); - if ((Math.random() > 0.895 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (Math.random() < 0.85) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } + doBioNorm(pixel); if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] doElectricity(hitPixel); @@ -5135,16 +2584,6 @@ elements.olfactory_bulb = { } pixel.smell = false } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 20 - pixel.oxygen -= 20 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - } } if (!isEmpty(pixel.x, pixel.y+1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y+1] @@ -5168,16 +2607,6 @@ elements.olfactory_bulb = { } pixel.smell = false } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 20 - pixel.oxygen -= 20 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - } } if (!isEmpty(pixel.x-1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x-1][pixel.y] @@ -5201,16 +2630,6 @@ elements.olfactory_bulb = { } pixel.smell = false } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 20 - pixel.oxygen -= 20 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - } } if (!isEmpty(pixel.x+1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x+1][pixel.y] @@ -5234,16 +2653,6 @@ elements.olfactory_bulb = { } pixel.smell = false } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 20 - pixel.oxygen -= 20 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - } } if (pixel.smell === true && Math.random() > 0.8) { pixel.smell = false @@ -5271,12 +2680,18 @@ elements.olfactory_bulb = { smell: false, }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } elements.taste_bud = { color: "#DB6767", category: "nervous system", + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: false, + normDie: "meat", + otherDie: "rotten_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, @@ -5284,67 +2699,34 @@ elements.taste_bud = { doHeat(pixel); doBurning(pixel); doElectricity(pixel); - if ((Math.random() > 0.895 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen-- - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (Math.random() < 0.95) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } + doBioNorm(pixel); if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] doElectricity(hitPixel); if (( elements[hitPixel.element].id === elements.sugar.id || elements[hitPixel.element].id === elements.salt.id || elements[hitPixel.element].id === elements.grease.id || elements[hitPixel.element].id === elements.cooked_meat.id || elements[hitPixel.element].id === elements.chocolate.id || elements[hitPixel.element].id === elements.chocolate_powder.id || elements[hitPixel.element].id === elements.cheese.id || elements[hitPixel.element].id === elements.cheese_powder.id || elements[hitPixel.element].id === elements.pickle.id || elements[hitPixel.element].id === elements.herb.id || elements[hitPixel.element].id === elements.juice.id || elements[hitPixel.element].id === elements.gingerbread.id || elements[hitPixel.element].id === elements.ketchup.id || elements[hitPixel.element].id === elements.mayo.id || elements[hitPixel.element].id === elements.sauce.id || elements[hitPixel.element].id === elements.chocolate_milk.id || elements[hitPixel.element].id === elements.grape.id || elements[hitPixel.element].id === elements.pilk.id || elements[hitPixel.element].id === elements.fruit_milk.id || elements[hitPixel.element].id === elements.nut_milk.id || elements[hitPixel.element].id === elements.soda.id || elements[hitPixel.element].id === elements.sugar_water.id ) && Math.random() > 0.5 && hitPixel.tasted != true) { - pixel.taste = true + pixel.tasted = true if (Math.random() > 0.5) { hitPixel.tasted = false } } else if ((elements[hitPixel.element].id === elements.alcohol.id || elements[hitPixel.element].id === elements.rotten_cheese.id || elements[hitPixel.element].id === elements.rotten_meat.id || elements[hitPixel.element].id === elements.pool_water.id || elements[hitPixel.element].id === elements.poison.id || elements[hitPixel.element].id === elements.bleach.id || elements[hitPixel.element].id === elements.cyanide.id || elements[hitPixel.element].id === elements.infection.id) && Math.random() > 0.5) { - pixel.taste = true + pixel.tasted = true if (Math.random() > 0.5) { hitPixel.tasted = false } pixel.oxygen-- pixel.nutrition-- } - else if (pixel.taste === true && elements[hitPixel.element].id === elements.nerve.id && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { + else if (pixel.tasted === true && elements[hitPixel.element].id === elements.nerve.id && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { if (!hitPixel.charge) { hitPixel.charge = 0.1 } else if (hitPixel.charge) { hitPixel.charge += 0.1 } - pixel.taste = false - } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 20 - pixel.oxygen -= 20 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } + pixel.tasted = false } } if (!isEmpty(pixel.x, pixel.y+1, true)) { @@ -5353,37 +2735,27 @@ elements.taste_bud = { if (( elements[hitPixel.element].id === elements.sugar.id || elements[hitPixel.element].id === elements.salt.id || elements[hitPixel.element].id === elements.grease.id || elements[hitPixel.element].id === elements.cooked_meat.id || elements[hitPixel.element].id === elements.chocolate.id || elements[hitPixel.element].id === elements.chocolate_powder.id || elements[hitPixel.element].id === elements.cheese.id || elements[hitPixel.element].id === elements.cheese_powder.id || elements[hitPixel.element].id === elements.pickle.id || elements[hitPixel.element].id === elements.herb.id || elements[hitPixel.element].id === elements.juice.id || elements[hitPixel.element].id === elements.gingerbread.id || elements[hitPixel.element].id === elements.ketchup.id || elements[hitPixel.element].id === elements.mayo.id || elements[hitPixel.element].id === elements.sauce.id || elements[hitPixel.element].id === elements.chocolate_milk.id || elements[hitPixel.element].id === elements.grape.id || elements[hitPixel.element].id === elements.pilk.id || elements[hitPixel.element].id === elements.fruit_milk.id || elements[hitPixel.element].id === elements.nut_milk.id || elements[hitPixel.element].id === elements.soda.id || elements[hitPixel.element].id === elements.sugar_water.id ) && Math.random() > 0.5 && hitPixel.tasted != true) { - pixel.taste = true + pixel.tasted = true if (Math.random() > 0.5) { hitPixel.tasted = false } } else if ((elements[hitPixel.element].id === elements.alcohol.id || elements[hitPixel.element].id === elements.rotten_cheese.id || elements[hitPixel.element].id === elements.rotten_meat.id || elements[hitPixel.element].id === elements.pool_water.id || elements[hitPixel.element].id === elements.poison.id || elements[hitPixel.element].id === elements.bleach.id || elements[hitPixel.element].id === elements.cyanide.id || elements[hitPixel.element].id === elements.infection.id) && Math.random() > 0.5) { - pixel.taste = true + pixel.tasted = true if (Math.random() > 0.5) { hitPixel.tasted = false } pixel.oxygen-- pixel.nutrition-- } - else if (pixel.taste === true && elements[hitPixel.element].id === elements.nerve.id && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { + else if (pixel.tasted === true && elements[hitPixel.element].id === elements.nerve.id && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { if (!hitPixel.charge) { hitPixel.charge = 0.1 } else if (hitPixel.charge) { hitPixel.charge += 0.1 } - pixel.taste = false - } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 20 - pixel.oxygen -= 20 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } + pixel.tasted = false } } if (!isEmpty(pixel.x-1, pixel.y, true)) { @@ -5392,37 +2764,27 @@ elements.taste_bud = { if (( elements[hitPixel.element].id === elements.sugar.id || elements[hitPixel.element].id === elements.salt.id || elements[hitPixel.element].id === elements.grease.id || elements[hitPixel.element].id === elements.cooked_meat.id || elements[hitPixel.element].id === elements.chocolate.id || elements[hitPixel.element].id === elements.chocolate_powder.id || elements[hitPixel.element].id === elements.cheese.id || elements[hitPixel.element].id === elements.cheese_powder.id || elements[hitPixel.element].id === elements.pickle.id || elements[hitPixel.element].id === elements.herb.id || elements[hitPixel.element].id === elements.juice.id || elements[hitPixel.element].id === elements.gingerbread.id || elements[hitPixel.element].id === elements.ketchup.id || elements[hitPixel.element].id === elements.mayo.id || elements[hitPixel.element].id === elements.sauce.id || elements[hitPixel.element].id === elements.chocolate_milk.id || elements[hitPixel.element].id === elements.grape.id || elements[hitPixel.element].id === elements.pilk.id || elements[hitPixel.element].id === elements.fruit_milk.id || elements[hitPixel.element].id === elements.nut_milk.id || elements[hitPixel.element].id === elements.soda.id || elements[hitPixel.element].id === elements.sugar_water.id ) && Math.random() > 0.5 && hitPixel.tasted != true) { - pixel.taste = true + pixel.tasted = true if (Math.random() > 0.5) { hitPixel.tasted = false } } else if ((elements[hitPixel.element].id === elements.alcohol.id || elements[hitPixel.element].id === elements.rotten_cheese.id || elements[hitPixel.element].id === elements.rotten_meat.id || elements[hitPixel.element].id === elements.pool_water.id || elements[hitPixel.element].id === elements.poison.id || elements[hitPixel.element].id === elements.bleach.id || elements[hitPixel.element].id === elements.cyanide.id || elements[hitPixel.element].id === elements.infection.id) && Math.random() > 0.5) { - pixel.taste = true + pixel.tasted = true if (Math.random() > 0.5) { hitPixel.tasted = false } pixel.oxygen-- pixel.nutrition-- } - else if (pixel.taste === true && elements[hitPixel.element].id === elements.nerve.id && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { + else if (pixel.tasted === true && elements[hitPixel.element].id === elements.nerve.id && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { if (!hitPixel.charge) { hitPixel.charge = 0.1 } else if (hitPixel.charge) { hitPixel.charge += 0.1 } - pixel.taste = false - } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 20 - pixel.oxygen -= 20 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } + pixel.tasted = false } } if (!isEmpty(pixel.x+1, pixel.y, true)) { @@ -5431,41 +2793,31 @@ elements.taste_bud = { if (( elements[hitPixel.element].id === elements.sugar.id || elements[hitPixel.element].id === elements.salt.id || elements[hitPixel.element].id === elements.grease.id || elements[hitPixel.element].id === elements.cooked_meat.id || elements[hitPixel.element].id === elements.chocolate.id || elements[hitPixel.element].id === elements.chocolate_powder.id || elements[hitPixel.element].id === elements.cheese.id || elements[hitPixel.element].id === elements.cheese_powder.id || elements[hitPixel.element].id === elements.pickle.id || elements[hitPixel.element].id === elements.herb.id || elements[hitPixel.element].id === elements.juice.id || elements[hitPixel.element].id === elements.gingerbread.id || elements[hitPixel.element].id === elements.ketchup.id || elements[hitPixel.element].id === elements.mayo.id || elements[hitPixel.element].id === elements.sauce.id || elements[hitPixel.element].id === elements.chocolate_milk.id || elements[hitPixel.element].id === elements.grape.id || elements[hitPixel.element].id === elements.pilk.id || elements[hitPixel.element].id === elements.fruit_milk.id || elements[hitPixel.element].id === elements.nut_milk.id || elements[hitPixel.element].id === elements.soda.id || elements[hitPixel.element].id === elements.sugar_water.id ) && Math.random() > 0.5 && hitPixel.tasted != true) { - pixel.taste = true + pixel.tasted = true if (Math.random() > 0.5) { hitPixel.tasted = false } } else if ((elements[hitPixel.element].id === elements.alcohol.id || elements[hitPixel.element].id === elements.rotten_cheese.id || elements[hitPixel.element].id === elements.rotten_meat.id || elements[hitPixel.element].id === elements.pool_water.id || elements[hitPixel.element].id === elements.poison.id || elements[hitPixel.element].id === elements.bleach.id || elements[hitPixel.element].id === elements.cyanide.id || elements[hitPixel.element].id === elements.infection.id) && Math.random() > 0.5) { - pixel.taste = true + pixel.tasted = true if (Math.random() > 0.5) { hitPixel.tasted = false } pixel.oxygen-- pixel.nutrition-- } - else if (pixel.taste === true && elements[hitPixel.element].id === elements.nerve.id && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { + else if (pixel.tasted === true && elements[hitPixel.element].id === elements.nerve.id && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { if (!hitPixel.charge) { hitPixel.charge = 0.1 } else if (hitPixel.charge) { hitPixel.charge += 0.1 } - pixel.taste = false - } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 20 - pixel.oxygen -= 20 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } + pixel.tasted = false } } - if (pixel.taste === true && Math.random() > 0.8) { - pixel.taste = false + if (pixel.tasted === true && Math.random() > 0.8) { + pixel.tasted = false } }, density: 2710, @@ -5490,61 +2842,26 @@ elements.taste_bud = { taste: false, }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } elements.brain = { color: ["#fce3e3","#deb6c5","#f5ced5","#e87b8f"], category: "nervous system", + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - doHeat(pixel); - doBurning(pixel); - doElectricity(pixel); - if ((Math.random() > 0.85 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } + doDefaults(pixel); + doBioNorm(pixel); if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] doElectricity(hitPixel); @@ -5552,27 +2869,6 @@ elements.brain = { pixel.chargeCD = 16 hitPixel.charge = 0.5 } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } } if (!isEmpty(pixel.x, pixel.y+1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y+1] @@ -5581,27 +2877,6 @@ elements.brain = { pixel.chargeCD = 16 hitPixel.charge = 0.5 } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } } if (!isEmpty(pixel.x-1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x-1][pixel.y] @@ -5610,27 +2885,6 @@ elements.brain = { pixel.chargeCD = 16 hitPixel.charge = 0.5 } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } } if (!isEmpty(pixel.x+1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x+1][pixel.y] @@ -5639,27 +2893,6 @@ elements.brain = { pixel.chargeCD = 16 hitPixel.charge = 0.5 } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } } if (pixel.charge) { pixel.charge = 0; @@ -5688,8 +2921,10 @@ elements.brain = { speed: 0, poisoned: false, immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -5698,151 +2933,19 @@ elements.amygdala = { // please please please ignore that i callled it the amygd category: "nervous system", name:"hypothalamus", behavior: behaviors.WALL, + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - doHeat(pixel); - doBurning(pixel); - doElectricity(pixel); - if (Math.random() > 0.895 && pixel.nutrition > 0 && pixel.oxygen > 0 || pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) { - pixel.nutrition-- - pixel.oxygen-- - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } + doDefaults(pixel); + doBioNorm(pixel); if (pixel.temp > 25) { pixel.temp -= 10; } else if (pixel.temp < 15) { pixel.temp += 10; } if (pixel.charge) { @@ -5872,8 +2975,10 @@ elements.amygdala = { // please please please ignore that i callled it the amygd speed: 0, poisoned: false, immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -5881,149 +2986,19 @@ elements.nerve = { color: "#B33E93", category: "nervous system", behavior: behaviors.WALL, + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { doDefaults(pixel); - if ((Math.random() > 0.895 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -6047,8 +3022,10 @@ elements.nerve = { speed: 0, poisoned: false, immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -6060,148 +3037,19 @@ elements.throat_lining = { "DL:stomach_acid,explosive_acid,decomposer_acid,carni_acid,herbi_acid%5|XX|DL:stomach_acid,explosive_acid,decomposer_acid,carni_acid,herbi_acid%5", "XX|DL:stomach_acid,explosive_acid,decomposer_acid,carni_acid,herbi_acid%5|XX", ], + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } + doDefaults(pixel); + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -6227,6 +3075,7 @@ elements.throat_lining = { immune: false, }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -6234,52 +3083,19 @@ elements.intestines = { color: "#bc6157", category: "nutrition", behavior: behaviors.WALL, + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } + doDefaults(pixel); + doBioNorm(pixel); if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].id === elements.digested_material.id && Math.random() > 0.99) { @@ -6315,27 +3131,6 @@ elements.intestines = { pixel.immune = true }; } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.25) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } } if (!isEmpty(pixel.x, pixel.y+1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y+1] @@ -6372,27 +3167,6 @@ elements.intestines = { pixel.immune = true }; } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.25) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } } if (!isEmpty(pixel.x-1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x-1][pixel.y] @@ -6427,27 +3201,6 @@ elements.intestines = { pixel.immune = true }; } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.25) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } } if (!isEmpty(pixel.x+1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x+1][pixel.y] @@ -6484,27 +3237,6 @@ elements.intestines = { pixel.immune = true }; } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.25) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } } }, density: 2710, @@ -6529,195 +3261,177 @@ elements.intestines = { speed: 0, poisoned: false, immune: false, + }, movable: false, - isBio: true + isBio: true, + renderer: renderPresets.FLESHBURN, } elements.appendix = { color: "#B45942", category: "nutrition", - behavior: behaviors.WALL, + behavior: [ + "XX|CR:intestine_bacteria%0.005|XX", + "CR:intestine_bacteria%0.005|XX|CR:intestine_bacteria%0.005", + "XX|CR:intestine_bacteria%0.005|XX", + ], + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "stomach_acid", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - if (Math.random() > 0.999 && (pixel.nutrition < 750 || pixel.oxygen < 500)) { - changePixel(pixel,"stomach_acid"); - } - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else if (Math.random() < 0.75) { - changePixel(pixel,"cooked_meat"); - } - else { - changePixel(pixel,"stomach_acid"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else if (Math.random() < 0.75) { - changePixel(pixel,"frozen_meat"); - } - else { - changePixel(pixel,"stomach_acid"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else if (Math.random() < 0.75) { - changePixel(pixel,"rotten_meat"); - } - else { - changePixel(pixel,"stomach_acid"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false + if (Math.random() < 0.0001 && (pixel.nutrition < 750 || pixel.oxygen < 500)) { + changePixel(pixel,"stomach_acid"); } + doDefaults(pixel); + doBioNorm(pixel); if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].id === elements.digested_material.id && Math.random() > 0.999) { - changePixel(hitPixel,"poop"); - pixel.nutrition += hitPixel.nutrition - if (Math.random() > 0.99) { - changePixel(pixel,"stomach_acid"); - } + if (elements[hitPixel.element].id === elements.digested_material.id && Math.random() > 0.99) { + if (Math.random() > 0.5) { + changePixel(hitPixel,"poop"); + } + else { + changePixel(hitPixel,"stench"); + } + pixel.nutrition += hitPixel.nutrition; + hitPixel.nutrition = 0; + pixel.speed += hitPixel.speed; + hitPixel.speed = 0; + if (hitPixel.poisoned === true && Math.random() > 0.9) { + pixel.poisoned = true + }; + if (hitPixel.immune === true && Math.random() > 0.5) { + pixel.poisoned = false + pixel.immune = true + }; } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.25) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } + else if (elements[hitPixel.element].id === elements.gaseous_material.id && Math.random() > 0.99) { + changePixel(hitPixel,"stench"); + pixel.nutrition += hitPixel.nutrition; + hitPixel.nutrition = 0; + pixel.speed += hitPixel.speed; + hitPixel.speed = 0; + if (hitPixel.poisoned === true && Math.random() > 0.9) { + pixel.poisoned = true + }; + if (hitPixel.immune === true && Math.random() > 0.5) { + pixel.poisoned = false + pixel.immune = true + }; } } if (!isEmpty(pixel.x, pixel.y+1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].id === elements.digested_material.id && Math.random() > 0.999) { - changePixel(hitPixel,"poop"); - pixel.nutrition += hitPixel.nutrition - if (Math.random() > 0.99) { - changePixel(pixel,"stomach_acid"); - } + if (elements[hitPixel.element].id === elements.digested_material.id && Math.random() > 0.99) { + if (Math.random() > 0.5) { + changePixel(hitPixel,"poop"); + } + else { + changePixel(hitPixel,"stench"); + } + pixel.nutrition += hitPixel.nutrition; + hitPixel.nutrition = 0; + pixel.speed += hitPixel.speed; + hitPixel.speed = 0; + if (hitPixel.poisoned === true && Math.random() > 0.9) { + pixel.poisoned = true + }; + if (hitPixel.immune === true && Math.random() > 0.5) { + pixel.poisoned = false + pixel.immune = true + }; } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.25) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } + else if (elements[hitPixel.element].id === elements.gaseous_material.id && Math.random() > 0.99) { + changePixel(hitPixel,"stench"); + pixel.nutrition += hitPixel.nutrition; + hitPixel.nutrition = 0; + pixel.speed += hitPixel.speed; + hitPixel.speed = 0; + if (hitPixel.poisoned === true && Math.random() > 0.9) { + pixel.poisoned = true + }; + if (hitPixel.immune === true && Math.random() > 0.5) { + pixel.poisoned = false + pixel.immune = true + }; } } if (!isEmpty(pixel.x-1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].id === elements.digested_material.id && Math.random() > 0.999) { - changePixel(hitPixel,"poop"); - pixel.nutrition += hitPixel.nutrition - if (Math.random() > 0.99) { - changePixel(pixel,"stomach_acid"); - } + if (elements[hitPixel.element].id === elements.digested_material.id && Math.random() > 0.99) { + if (Math.random() > 0.5) { + changePixel(hitPixel,"poop"); + } + else { + changePixel(hitPixel,"stench"); + } + pixel.nutrition += hitPixel.nutrition; + hitPixel.nutrition = 0; + pixel.speed += hitPixel.speed; + hitPixel.speed = 0; + if (hitPixel.poisoned === true && Math.random() > 0.9) { + pixel.poisoned = true + }; + if (hitPixel.immune === true && Math.random() > 0.5) { + pixel.poisoned = false + pixel.immune = true + }; } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.25) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } + else if (elements[hitPixel.element].id === elements.gaseous_material.id && Math.random() > 0.99) { + changePixel(hitPixel,"stench"); + pixel.nutrition += hitPixel.nutrition; + hitPixel.nutrition = 0; + if (hitPixel.poisoned === true && Math.random() > 0.9) { + pixel.poisoned = true + }; + if (hitPixel.immune === true && Math.random() > 0.5) { + pixel.poisoned = false + pixel.immune = true + }; } } if (!isEmpty(pixel.x+1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].id === elements.digested_material.id && Math.random() > 0.999) { - changePixel(hitPixel,"poop"); - pixel.nutrition += hitPixel.nutrition - if (Math.random() > 0.90) { - changePixel(pixel,"stomach_acid"); - } + if (elements[hitPixel.element].id === elements.digested_material.id && Math.random() > 0.99) { + if (Math.random() > 0.5) { + changePixel(hitPixel,"poop"); + } + else { + changePixel(hitPixel,"stench"); + } + pixel.nutrition += hitPixel.nutrition; + hitPixel.nutrition = 0; + pixel.speed += hitPixel.speed; + hitPixel.speed = 0; + if (hitPixel.poisoned === true && Math.random() > 0.9) { + pixel.poisoned = true + }; + if (hitPixel.immune === true && Math.random() > 0.5) { + pixel.poisoned = false + pixel.immune = true + }; } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.25) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } + else if (elements[hitPixel.element].id === elements.gaseous_material.id && Math.random() > 0.99) { + changePixel(hitPixel,"stench"); + pixel.nutrition += hitPixel.nutrition; + hitPixel.nutrition = 0; + pixel.speed += hitPixel.speed; + hitPixel.speed = 0; + if (hitPixel.poisoned === true && Math.random() > 0.9) { + pixel.poisoned = true + }; + if (hitPixel.immune === true && Math.random() > 0.5) { + pixel.poisoned = false + pixel.immune = true + }; } } }, @@ -6743,15 +3457,24 @@ elements.appendix = { speed: 0, poisoned: false, immune: false, + }, movable: false, - isBio: true + isBio: true, + renderer: renderPresets.FLESHBURN, } elements.simple_lung = { color: "#EB85D9", category: "oxygen", behavior: behaviors.WALL, + nutrTrans: 10, + oxygTrans: 15, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, @@ -6762,167 +3485,44 @@ elements.simple_lung = { if (isEmpty(x,y)) { if (Math.random() < 0.01) { pixel.oxygen += 100 } break - } } - if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } + } + } + doDefaults(pixel); + doBioNorm(pixel); if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { - pixel.smell = true + if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { deletePixel(hitPixel.x,hitPixel.y) - pixel.oxygen -= 50 - pixel.nutrition -= 50 + pixel.oxygen -= 250 + pixel.nutrition -= 250 + pixel.speed -= 25 } } if (!isEmpty(pixel.x, pixel.y+1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { - pixel.smell = true + if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { deletePixel(hitPixel.x,hitPixel.y) - pixel.oxygen -= 50 - pixel.nutrition -= 50 + pixel.oxygen -= 250 + pixel.nutrition -= 250 + pixel.speed -= 25 } } if (!isEmpty(pixel.x-1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { - pixel.smell = true + if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { deletePixel(hitPixel.x,hitPixel.y) - pixel.oxygen -= 50 - pixel.nutrition -= 50 + pixel.oxygen -= 250 + pixel.nutrition -= 250 + pixel.speed -= 25 } } if (!isEmpty(pixel.x+1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { - pixel.smell = true + if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { deletePixel(hitPixel.x,hitPixel.y) - pixel.oxygen -= 50 - pixel.nutrition -= 50 + pixel.oxygen -= 250 + pixel.nutrition -= 250 + pixel.speed -= 25 } } }, @@ -6948,203 +3548,88 @@ elements.simple_lung = { speed: 0, poisoned: false, immune: false, + }, movable: false, - isBio: true + isBio: true, + renderer: renderPresets.FLESHBURN, } elements.lungs = { color: "#d4aaab", category: "oxygen", behavior: behaviors.WALL, + nutrTrans: 10, + oxygTrans: 15, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } + doDefaults(pixel); + doBioNorm(pixel); if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].id === elements.oxygen.id && Math.random() > 0.95) { + if (elements[hitPixel.element].id === elements.oxygen.id && Math.random() > 0.9) { if (Math.random() > 0.75) { changePixel(hitPixel,"carbon_dioxide"); } pixel.oxygen += 100 } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { - pixel.smell = true deletePixel(hitPixel.x,hitPixel.y) - pixel.oxygen -= 50 - pixel.nutrition -= 50 + pixel.oxygen -= 250 + pixel.nutrition -= 250 + pixel.speed -= 25 } } if (!isEmpty(pixel.x, pixel.y+1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].id === elements.oxygen.id && Math.random() > 0.95) { + if (elements[hitPixel.element].id === elements.oxygen.id && Math.random() > 0.9) { if (Math.random() > 0.75) { changePixel(hitPixel,"carbon_dioxide"); } pixel.oxygen += 100 } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { - pixel.smell = true deletePixel(hitPixel.x,hitPixel.y) - pixel.oxygen -= 50 - pixel.nutrition -= 50 + pixel.oxygen -= 250 + pixel.nutrition -= 250 + pixel.speed -= 25 } } if (!isEmpty(pixel.x-1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].id === elements.oxygen.id && Math.random() > 0.95) { + if (elements[hitPixel.element].id === elements.oxygen.id && Math.random() > 0.9) { if (Math.random() > 0.75) { changePixel(hitPixel,"carbon_dioxide"); } pixel.oxygen += 100 } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { - pixel.smell = true deletePixel(hitPixel.x,hitPixel.y) - pixel.oxygen -= 50 - pixel.nutrition -= 50 + pixel.oxygen -= 250 + pixel.nutrition -= 250 + pixel.speed -= 25 } } if (!isEmpty(pixel.x+1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].id === elements.oxygen.id && Math.random() > 0.95) { + if (elements[hitPixel.element].id === elements.oxygen.id && Math.random() > 0.9) { if (Math.random() > 0.75) { changePixel(hitPixel,"carbon_dioxide"); } pixel.oxygen += 100 } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { - pixel.smell = true deletePixel(hitPixel.x,hitPixel.y) - pixel.oxygen -= 50 - pixel.nutrition -= 50 + pixel.oxygen -= 250 + pixel.nutrition -= 250 + pixel.speed -= 25 } } }, @@ -7170,9 +3655,11 @@ elements.lungs = { speed: 0, poisoned: false, immune: false, + }, movable: false, - isBio: true + isBio: true, + renderer: renderPresets.FLESHBURN, } elements.amphib_skin = { @@ -7183,6 +3670,13 @@ elements.amphib_skin = { "CR:slime%0.001|XX|CR:slime%0.001", "XX|CR:slime%0.001|XX", ], + nutrTrans: 10, + oxygTrans: 15, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, @@ -7209,190 +3703,65 @@ elements.amphib_skin = { pixel.temp += 1; } doDefaults(pixel); - if (Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } + doBioNorm(pixel); if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].id === elements.oxygen.id && Math.random() > 0.95) { + if (elements[hitPixel.element].id === elements.oxygen.id && Math.random() > 0.9) { if (Math.random() > 0.75) { changePixel(hitPixel,"carbon_dioxide"); } pixel.oxygen += 100 } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { - pixel.smell = true deletePixel(hitPixel.x,hitPixel.y) - pixel.oxygen -= 50 - pixel.nutrition -= 50 + pixel.oxygen -= 250 + pixel.nutrition -= 250 + pixel.speed -= 25 } } if (!isEmpty(pixel.x, pixel.y+1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].id === elements.oxygen.id && Math.random() > 0.95) { + if (elements[hitPixel.element].id === elements.oxygen.id && Math.random() > 0.9) { if (Math.random() > 0.75) { changePixel(hitPixel,"carbon_dioxide"); } pixel.oxygen += 100 } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { - pixel.smell = true deletePixel(hitPixel.x,hitPixel.y) - pixel.oxygen -= 50 - pixel.nutrition -= 50 + pixel.oxygen -= 250 + pixel.nutrition -= 250 + pixel.speed -= 25 } } if (!isEmpty(pixel.x-1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].id === elements.oxygen.id && Math.random() > 0.95) { + if (elements[hitPixel.element].id === elements.oxygen.id && Math.random() > 0.9) { if (Math.random() > 0.75) { changePixel(hitPixel,"carbon_dioxide"); } pixel.oxygen += 100 } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { - pixel.smell = true deletePixel(hitPixel.x,hitPixel.y) - pixel.oxygen -= 50 - pixel.nutrition -= 50 + pixel.oxygen -= 250 + pixel.nutrition -= 250 + pixel.speed -= 25 } } if (!isEmpty(pixel.x+1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].id === elements.oxygen.id && Math.random() > 0.95) { + if (elements[hitPixel.element].id === elements.oxygen.id && Math.random() > 0.9) { if (Math.random() > 0.75) { changePixel(hitPixel,"carbon_dioxide"); } pixel.oxygen += 100 } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { - pixel.smell = true deletePixel(hitPixel.x,hitPixel.y) - pixel.oxygen -= 50 - pixel.nutrition -= 50 + pixel.oxygen -= 250 + pixel.nutrition -= 250 + pixel.speed -= 25 } } }, @@ -7415,8 +3784,10 @@ elements.amphib_skin = { speed: 0, poisoned: false, immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, burn:5, burnTime: 100, @@ -7427,6 +3798,11 @@ elements.exoskeleton = { color: ["#453a2e","#241d15","#242e23"], category: "oxygen", behavior: behaviors.WALL, + nutrTrans: 10, + oxygTrans: 15, + isMultiDie: false, + normDie: "dust", + otherDie: "calcium", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, @@ -7435,190 +3811,65 @@ elements.exoskeleton = { pixel.temp -= 1; } doDefaults(pixel); - if (Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.999) { - changePixel(pixel,"dust"); - } - else { - changePixel(pixel,"calcium"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.95) { - changePixel(pixel,"dust"); - } - else { - changePixel(pixel,"calcium"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"dust"); - } - else { - changePixel(pixel,"calcium"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } + doBioNorm(pixel); if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].id === elements.oxygen.id && Math.random() > 0.95) { + if (elements[hitPixel.element].id === elements.oxygen.id && Math.random() > 0.9) { if (Math.random() > 0.75) { changePixel(hitPixel,"carbon_dioxide"); } pixel.oxygen += 100 } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { - pixel.smell = true deletePixel(hitPixel.x,hitPixel.y) - pixel.oxygen -= 50 - pixel.nutrition -= 50 + pixel.oxygen -= 250 + pixel.nutrition -= 250 + pixel.speed -= 25 } } if (!isEmpty(pixel.x, pixel.y+1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].id === elements.oxygen.id && Math.random() > 0.95) { + if (elements[hitPixel.element].id === elements.oxygen.id && Math.random() > 0.9) { if (Math.random() > 0.75) { changePixel(hitPixel,"carbon_dioxide"); } pixel.oxygen += 100 } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { - pixel.smell = true deletePixel(hitPixel.x,hitPixel.y) - pixel.oxygen -= 50 - pixel.nutrition -= 50 + pixel.oxygen -= 250 + pixel.nutrition -= 250 + pixel.speed -= 25 } } if (!isEmpty(pixel.x-1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].id === elements.oxygen.id && Math.random() > 0.95) { + if (elements[hitPixel.element].id === elements.oxygen.id && Math.random() > 0.9) { if (Math.random() > 0.75) { changePixel(hitPixel,"carbon_dioxide"); } pixel.oxygen += 100 } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { - pixel.smell = true deletePixel(hitPixel.x,hitPixel.y) - pixel.oxygen -= 50 - pixel.nutrition -= 50 + pixel.oxygen -= 250 + pixel.nutrition -= 250 + pixel.speed -= 25 } } if (!isEmpty(pixel.x+1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].id === elements.oxygen.id && Math.random() > 0.95) { + if (elements[hitPixel.element].id === elements.oxygen.id && Math.random() > 0.9) { if (Math.random() > 0.75) { changePixel(hitPixel,"carbon_dioxide"); } pixel.oxygen += 100 } - else if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } else if ((elements[hitPixel.element].id === elements.chlorine.id || elements[hitPixel.element].id === elements.poison_gas.id || elements[hitPixel.element].id === elements.acid_gas.id || elements[hitPixel.element].id === elements.cyanide_gas.id || elements[hitPixel.element].id === elements.dioxin.id) && Math.random() > 0.5) { - pixel.smell = true deletePixel(hitPixel.x,hitPixel.y) - pixel.oxygen -= 50 - pixel.nutrition -= 50 + pixel.oxygen -= 250 + pixel.nutrition -= 250 + pixel.speed -= 25 } } }, @@ -7641,8 +3892,10 @@ elements.exoskeleton = { speed: 0, poisoned: false, immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, burn:5, burnTime: 100, @@ -7652,76 +3905,22 @@ elements.exoskeleton = { elements.gills = { color: "#5EBAE3", category: "oxygen", + nutrTrans: 10, + oxygTrans: 15, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } + doDefaults(pixel); + doBioNorm(pixel); if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - else if (elements[hitPixel.element].id === elements.deoxygenated_water.id && Math.random() > 0.75) { + if (elements[hitPixel.element].id === elements.deoxygenated_water.id && Math.random() > 0.75) { if (!tryMove(hitPixel,pixel.x,pixel.y+1)) { if (elements[pixelMap[pixel.x][pixel.y+1].element].state === "liquid") { swapPixels(hitPixel,pixelMap[pixel.x][pixel.y+1]) @@ -7751,54 +3950,9 @@ elements.gills = { } } } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } if (!isEmpty(pixel.x-1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - else if (elements[hitPixel.element].id === elements.deoxygenated_water.id && Math.random() > 0.75) { + if (elements[hitPixel.element].id === elements.deoxygenated_water.id && Math.random() > 0.75) { if (isEmpty(pixel.x+1, pixel.y)) { tryMove(hitPixel,pixel.x+1,pixel.y); } @@ -7822,30 +3976,6 @@ elements.gills = { } } } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } }, density: 2710, state: "solid", @@ -7869,84 +3999,32 @@ elements.gills = { speed: 0, poisoned: false, immune: false, + }, movable: false, - isBio: true + isBio: true, + renderer: renderPresets.FLESHBURN, } elements.simple_gill = { color: "#75C0E2", category: "oxygen", + nutrTrans: 10, + oxygTrans: 15, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -- - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } + doDefaults(pixel); + doBioNorm(pixel); if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - else if (elements[hitPixel.element].id === elements.deoxygenated_water.id && Math.random() > 0.75) { + if (elements[hitPixel.element].id === elements.deoxygenated_water.id && Math.random() > 0.75) { if (!tryMove(hitPixel,pixel.x,pixel.y+1)) { if (elements[pixelMap[pixel.x][pixel.y+1].element].state === "liquid") { swapPixels(hitPixel,pixelMap[pixel.x][pixel.y+1]) @@ -7954,7 +4032,7 @@ elements.simple_gill = { } } else if (elements[hitPixel.element].id === elements.water.id && Math.random() > 0.75) { - pixel.oxygen += 50 + pixel.oxygen += 75 if (!tryMove(hitPixel,pixel.x,pixel.y+1)) { if (elements[pixelMap[pixel.x][pixel.y+1].element].state === "liquid") { swapPixels(hitPixel,pixelMap[pixel.x][pixel.y+1]) @@ -7962,7 +4040,7 @@ elements.simple_gill = { } } else if (elements[hitPixel.element].id === elements.salt_water.id && Math.random() > 0.75) { - pixel.oxygen += 50 + pixel.oxygen += 75 if (!tryMove(hitPixel,pixel.x,pixel.y+1)) { if (elements[pixelMap[pixel.x][pixel.y+1].element].state === "liquid") { swapPixels(hitPixel,pixelMap[pixel.x][pixel.y+1]) @@ -7970,54 +4048,9 @@ elements.simple_gill = { } } } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } if (!isEmpty(pixel.x-1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - else if (elements[hitPixel.element].id === elements.deoxygenated_water.id && Math.random() > 0.75) { + if (elements[hitPixel.element].id === elements.deoxygenated_water.id && Math.random() > 0.75) { if (isEmpty(pixel.x+1, pixel.y)) { tryMove(hitPixel,pixel.x+1,pixel.y); } @@ -8035,30 +4068,6 @@ elements.simple_gill = { } } } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } }, density: 2710, state: "solid", @@ -8082,9 +4091,11 @@ elements.simple_gill = { speed: 0, poisoned: false, immune: false, + }, movable: false, - isBio: true + isBio: true, + renderer: renderPresets.FLESHBURN, } elements.stomach_lining = { @@ -8095,148 +4106,19 @@ elements.stomach_lining = { "CR:stomach_acid%1|XX|CR:stomach_acid%1", "XX|CR:stomach_acid%1|XX", ], + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } + doDefaults(pixel); + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -8260,9 +4142,11 @@ elements.stomach_lining = { speed: 0, poisoned: false, immune: false, + }, movable: false, - isBio: true + isBio: true, + renderer: renderPresets.FLESHBURN, } elements.decomposer_stomach = { @@ -8273,148 +4157,19 @@ elements.decomposer_stomach = { "CR:decomposer_acid%5|XX|CR:decomposer_acid%5", "XX|CR:decomposer_acid%5|XX", ], + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } + doDefaults(pixel); + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -8438,9 +4193,11 @@ elements.decomposer_stomach = { speed: 0, poisoned: false, immune: false, + }, movable: false, - isBio: true + isBio: true, + renderer: renderPresets.FLESHBURN, } elements.herbi_stomach = { @@ -8451,148 +4208,19 @@ elements.herbi_stomach = { "CR:herbi_acid%5|XX|CR:herbi_acid%5", "XX|CR:herbi_acid%5|XX", ], + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } + doDefaults(pixel); + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -8616,9 +4244,11 @@ elements.herbi_stomach = { speed: 0, poisoned: false, immune: false, + }, movable: false, - isBio: true + isBio: true, + renderer: renderPresets.FLESHBURN, } elements.carni_stomach = { @@ -8629,149 +4259,19 @@ elements.carni_stomach = { "CR:carni_acid%5|XX|CR:carni_acid%5", "XX|CR:carni_acid%5|XX", ], + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } doDefaults(pixel); + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -8795,9 +4295,11 @@ elements.carni_stomach = { speed: 0, poisoned: false, immune: false, + }, movable: false, - isBio: true + isBio: true, + renderer: renderPresets.FLESHBURN, } elements.explosive_stomach = { @@ -8808,149 +4310,19 @@ elements.explosive_stomach = { "CR:explosive_acid%5|XX|CR:explosive_acid%5", "XX|CR:explosive_acid%5|XX", ], + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.85) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"pop"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"pop"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } doDefaults(pixel); + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -8974,167 +4346,38 @@ elements.explosive_stomach = { speed: 0, poisoned: false, immune: false, + }, movable: false, - isBio: true + isBio: true, + renderer: renderPresets.FLESHBURN, } elements.stomach_valve = { color: "#c8846f", category: "nutrition", - behavior: [ - "XX|XX|XX", - "XX|XX|XX", - "XX|CR:intestine_bacteria%0.001|XX", - ], + behavior: behaviors.WALL, hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", tick: function(pixel) { - if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } + doDefaults(pixel); + doBioNorm(pixel); if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - else if ((elements[hitPixel.element].id === elements.digested_material.id || elements[hitPixel.element].id === elements.gaseous_material.id) && Math.random() > 0.75) { + if (elements[hitPixel.element].isAcid != true && Math.random() > 0.75) { if (isEmpty(pixel.x, pixel.y+1)) { tryMove(hitPixel,pixel.x,pixel.y+1); } } } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - doDefaults(pixel); }, density: 2710, state: "solid", @@ -9158,84 +4401,32 @@ elements.stomach_valve = { speed: 0, poisoned: false, immune: false, + }, movable: false, - isBio: true + isBio: true, + renderer: renderPresets.FLESHBURN, } elements.sphincter = { color: "#c8846f", category: "nutrition", + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.9 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } + doDefaults(pixel); + doBioNorm(pixel); if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - else if ((elements[hitPixel.element].id === elements.excreted_poop.id || elements[hitPixel.element].id === elements.poop.id || elements[hitPixel.element].id === elements.stench.id || elements[hitPixel.element].id === elements.dirty_water.id) && Math.random() > 0.75) { + if ((elements[hitPixel.element].id === elements.excreted_poop.id || elements[hitPixel.element].id === elements.poop.id || elements[hitPixel.element].id === elements.stench.id || elements[hitPixel.element].id === elements.dirty_water.id) && Math.random() > 0.75) { if (elements[hitPixel.element].id === elements.poop.id) { changePixel(hitPixel,"excreted_poop"); } @@ -9244,79 +4435,6 @@ elements.sphincter = { } } } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - doDefaults(pixel); }, density: 2710, state: "solid", @@ -9340,9 +4458,11 @@ elements.sphincter = { speed: 0, poisoned: false, immune: false, + }, movable: false, - isBio: true + isBio: true, + renderer: renderPresets.FLESHBURN, } elements.real_udder = { @@ -9352,66 +4472,20 @@ elements.real_udder = { "XX|XX|XX", "XX|XX|XX", ], + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.975 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen-- - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.9999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"milk"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 20 - pixel.oxygen -= 20 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - } - } - else if (isEmpty(pixel.x, pixel.y-1) && Math.random() > 0.95 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { + doDefaults(pixel); + doBioNorm(pixel); + if (isEmpty(pixel.x, pixel.y-1) && Math.random() > 0.95 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { if (Math.random() > 0.95) { if (Math.random() > 0.95) { pixel.nutrition -= 25 @@ -9419,20 +4493,7 @@ elements.real_udder = { createPixel("milk",pixel.x,pixel.y-1) } } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 20 - pixel.oxygen -= 20 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - } - } - else if (isEmpty(pixel.x, pixel.y+1) && Math.random() > 0.95 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { + if (isEmpty(pixel.x, pixel.y+1) && Math.random() > 0.95 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { if (Math.random() > 0.95) { if (Math.random() > 0.95) { pixel.nutrition -= 25 @@ -9440,20 +4501,7 @@ elements.real_udder = { createPixel("milk",pixel.x,pixel.y+1) } } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 20 - pixel.oxygen -= 20 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - } - } - else if (isEmpty(pixel.x-1, pixel.y) && Math.random() > 0.95 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { + if (isEmpty(pixel.x-1, pixel.y) && Math.random() > 0.95 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { if (Math.random() > 0.95) { if (Math.random() > 0.95) { pixel.nutrition -= 20 @@ -9461,20 +4509,7 @@ elements.real_udder = { createPixel("milk",pixel.x-1,pixel.y) } } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 20 - pixel.oxygen -= 20 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - } - } - else if (isEmpty(pixel.x+1, pixel.y) && Math.random() > 0.95 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { + if (isEmpty(pixel.x+1, pixel.y) && Math.random() > 0.95 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) { if (Math.random() > 0.95) { if (Math.random() > 0.95) { pixel.nutrition -= 20 @@ -9482,7 +4517,6 @@ elements.real_udder = { createPixel("milk",pixel.x+1,pixel.y) } } - doDefaults(pixel); }, properties: { oxygen: 1000, @@ -9490,6 +4524,7 @@ elements.real_udder = { speed: 0, poisoned: false, immune: false, + }, tempHigh: 175, stateHigh: "meat", @@ -9505,6 +4540,7 @@ elements.real_udder = { conduct: .001, movable: false, isBio: true, + renderer: renderPresets.FLESHBURN, } elements.biotorch = { @@ -9514,73 +4550,29 @@ elements.biotorch = { "XX|XX|XX", "XX|XX|XX", ], + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "cooked_meat", + roomDie: "cooked_meat", + coldDie: "meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.975 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 550 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -5 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.55) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"ash"); - } - } - else { - if (Math.random() < 0.95) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } + doDefaults(pixel); + doBioNorm(pixel); if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 20 - pixel.oxygen -= 20 + if (elements[hitPixel.element].isBio != true && Math.random() > 0.5) { + if (hitPixel.temp < pixel.temp) { + hitPixel.temp++ + pixel.temp-- } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true + if (hitPixel.temp > pixel.temp) { + hitPixel.temp-- + pixel.temp++ } } } @@ -9592,27 +4584,6 @@ elements.biotorch = { } if (!isEmpty(pixel.x, pixel.y+1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 20 - pixel.oxygen -= 20 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } if (elements[hitPixel.element].isBio != true && Math.random() > 0.5) { if (hitPixel.temp < pixel.temp) { hitPixel.temp++ @@ -9634,27 +4605,6 @@ elements.biotorch = { } if (!isEmpty(pixel.x-1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 20 - pixel.oxygen -= 20 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } if (elements[hitPixel.element].isBio != true && Math.random() > 0.5) { if (hitPixel.temp < pixel.temp) { hitPixel.temp++ @@ -9676,27 +4626,6 @@ elements.biotorch = { } if (!isEmpty(pixel.x+1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 20 - pixel.oxygen -= 20 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 20 - pixel.nutrition -= 20 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } if (elements[hitPixel.element].isBio != true && Math.random() > 0.5) { if (hitPixel.temp < pixel.temp) { hitPixel.temp++ @@ -9912,7 +4841,7 @@ elements.stomach_acid = { "cooked_meat": { elem2:"digested_material", attr2:{"nutrition":60}, chance:0.02 }, "broth": { elem1:null, elem2:"digested_material", attr2:{"nutrition":45}, chance:0.02 }, "rotten_meat": { elem2:["digested_material","ammonia",null,null,null], attr2:{"nutrition":-10, "speed":-10}, chance:0.02 }, - "immune_meat": { elem2:"digested_material", attr2:{"nutrition":50}, chance:0.02 }, + "cured_meat": { elem2:"digested_material", attr2:{"nutrition":50}, chance:0.02 }, "cheese": { elem2:"digested_material", attr2:{"nutrition":35}, chance:0.02 }, "cheese_powder": { elem2:"digested_material", attr2:{"nutrition":35}, chance:0.02 }, "lettuce": { elem2:"digested_material", attr2:{"nutrition":40}, chance:0.02 }, @@ -9999,7 +4928,8 @@ elements.stomach_acid = { burnTime: 1, state: "liquid", density: 1050, - stain: -0.1 + stain: -0.1, + isAcid: true, } elements.herbi_acid = { @@ -10025,7 +4955,7 @@ elements.herbi_acid = { "cooked_meat": { elem2:"digested_material", attr2:{"nutrition":-5, "speed":1}, chance:0.02 }, "broth": { elem1:null, elem2:"digested_material", attr2:{"nutrition":-5}, chance:0.02 }, "rotten_meat": { elem2:["digested_material","ammonia",null,null,null], attr2:{"nutrition":-25, "speed":-20}, chance:0.02 }, - "immune_meat": { elem2:"digested_material", attr2:{"nutrition":-5, "speed":-1}, chance:0.02 }, + "cured_meat": { elem2:"digested_material", attr2:{"nutrition":-5, "speed":-1}, chance:0.02 }, "cheese": { elem2:"digested_material", attr2:{"nutrition":40}, chance:0.02 }, "cheese_powder": { elem2:"digested_material", attr2:{"nutrition":35}, chance:0.02 }, "vine": { elem2:"digested_material", attr2:{"nutrition":60}, chance:0.02 }, @@ -10116,7 +5046,8 @@ elements.herbi_acid = { burnTime: 1, state: "liquid", density: 1050, - stain: -0.1 + stain: -0.1, + isAcid: true, } elements.carni_acid = { @@ -10142,7 +5073,7 @@ elements.carni_acid = { "cooked_meat": { elem2:"digested_material", attr2:{"nutrition":60, "speed":4}, chance:0.02 }, "broth": { elem1:null, elem2:"digested_material", attr2:{"nutrition":50, "speed":6}, chance:0.02 }, "rotten_meat": { elem2:["digested_material","ammonia",null,null,null], attr2:{"nutrition":5, "speed":-5}, chance:0.02 }, - "immune_meat": { elem2:"digested_material", attr2:{"nutrition":50, "speed":-1}, chance:0.02 }, + "cured_meat": { elem2:"digested_material", attr2:{"nutrition":50, "speed":-1}, chance:0.02 }, "cheese": { elem2:"digested_material", attr2:{"nutrition":35, "speed":-1}, chance:0.02 }, "cheese_powder": { elem2:"digested_material", attr2:{"nutrition":35, "speed":-1}, chance:0.02 }, "lettuce": { elem2:"digested_material", attr2:{"nutrition":20}, chance:0.02 }, @@ -10233,7 +5164,8 @@ elements.carni_acid = { burnTime: 1, state: "liquid", density: 1050, - stain: -0.1 + stain: -0.1, + isAcid: true, } elements.explosive_acid = { @@ -10259,7 +5191,7 @@ elements.explosive_acid = { "cooked_meat": { elem2:"digested_material", attr2:{"nutrition":60}, chance:0.02 }, "broth": { elem1:null, elem2:"digested_material", attr2:{"nutrition":55}, chance:0.02 }, "rotten_meat": { elem2:["digested_material","ammonia",null,null,null], attr2:{"nutrition":30}, chance:0.02 }, - "immune_meat": { elem2:"digested_material", attr2:{"nutrition":50}, chance:0.02 }, + "cured_meat": { elem2:"digested_material", attr2:{"nutrition":50}, chance:0.02 }, "cheese": { elem2:"digested_material", attr2:{"nutrition":35}, chance:0.02 }, "lettuce": { elem2:"digested_material", attr2:{"nutrition":40}, chance:0.02 }, "herb": { elem2:"digested_material", attr2:{"nutrition":35}, chance:0.02 }, @@ -10348,6 +5280,7 @@ elements.explosive_acid = { tempLow: -58.88, state: "liquid", density: 1050, + isAcid: true, } elements.decomposer_acid = { @@ -10373,7 +5306,7 @@ elements.decomposer_acid = { "cooked_meat": { elem2:"digested_material", attr2:{"nutrition":-5}, chance:0.02 }, "broth": { elem1:null, elem2:"digested_material", attr2:{"nutrition":25}, chance:0.02 }, "rotten_meat": { elem2:["digested_material","ammonia",null,null,null], attr2:{"nutrition":55, "speed":5}, chance:0.02 }, - "immune_meat": { elem2:"digested_material", attr2:{"nutrition":-5}, chance:0.02 }, + "cured_meat": { elem2:"digested_material", attr2:{"nutrition":-5}, chance:0.02 }, "cheese": { elem2:"digested_material", attr2:{"nutrition":50}, chance:0.02 }, "vine": { elem2:"digested_material", attr2:{"nutrition":30}, chance:0.02 }, "grass": { elem2:"digested_material", attr2:{"nutrition":30}, chance:0.02 }, @@ -10459,7 +5392,8 @@ elements.decomposer_acid = { burnTime: 1, state: "liquid", density: 1050, - stain: -0.1 + stain: -0.1, + isAcid: true, } elements.deoxygenated_water = { @@ -10504,7 +5438,7 @@ elements.deoxygenated_water = { "firefly": { elem2:"dead_bug", chance:0.1, oneway:true }, "bee": { elem2:"dead_bug", chance:0.05, oneway:true }, "stink_bug": { elem2:"dead_bug", chance:0.1, oneway:true }, - "immune_meat": { elem1:"salt_water", elem2:"meat" }, + "cured_meat": { elem1:"salt_water", elem2:"meat" }, "water": { elem1:"water", chance:0.005 }, "salt_water": { elem1:"water", chance:0.005 }, "deoxygenated_water": { elem2:"bubble", attr2:{"clone":"water"}, chance:0.001, tempMin:85 }, @@ -10525,133 +5459,17 @@ elements.real_bone = { "sugar_water": { elem2:"broth", tempMin:70 }, "seltzer": { elem2:"broth", tempMin:70 }, }, + nutrTrans: 5, + oxygTrans: 5, + isMultiDie: false, + normDie: "bone", + otherDie: "bone", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.99 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - changePixel(pixel,"bone"); - } - else if (pixel.temp < -15) { - changePixel(pixel,"bone"); - } - else { - changePixel(pixel,"bone"); - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } + doBioBone(pixel); + doDefaults(pixel); }, category:"structural", tempHigh: 260, @@ -10668,7 +5486,7 @@ elements.real_bone = { poisoned: false, immune: false, }, - breakInto: ["quicklime","quicklime","quicklime","blood","bone","bone","bone","bone","bone","bone"], + breakInto: ["real_bone_marrow","real_bone_marrow","blood","bone","bone","bone","bone","bone","bone","bone","bone","bone","bone","bone","bone"], movable: false, isBio: true, burn: 1, @@ -10680,6 +5498,13 @@ elements.real_bone_marrow = { color: "#D3A491", category: "structural", behavior: behaviors.WALL, + nutrTrans: 15, + oxygTrans: 15, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, @@ -10694,166 +5519,41 @@ elements.real_bone_marrow = { } } } + doBioNorm(pixel); doDefaults(pixel); - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.95) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"blood"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.95) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"blood"); - } - } - else { - if (Math.random() < 0.95) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"blood"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (elements[hitPixel.element].isBlood === true) { - if (Math.random() > 0.999 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2020))) { - hitPixel.element = "white_blood_cell"; - hitPixel.color = elements.white_blood_cell.color; - } + if (elements[hitPixel.element].isBlood === true) { + if (Math.random() > 0.9995 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2020))) { + hitPixel.element = "white_blood_cell"; + hitPixel.color = elements.white_blood_cell.color; } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (elements[hitPixel.element].isBlood === true) { - if (Math.random() > 0.999 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2020))) { - hitPixel.element = "white_blood_cell"; - hitPixel.color = elements.white_blood_cell.color; - } + if (elements[hitPixel.element].isBlood === true) { + if (Math.random() > 0.9995 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2020))) { + hitPixel.element = "white_blood_cell"; + hitPixel.color = elements.white_blood_cell.color; } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (elements[hitPixel.element].isBlood === true) { - if (Math.random() > 0.999 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2020))) { - hitPixel.element = "white_blood_cell"; - hitPixel.color = elements.white_blood_cell.color; - } + if (elements[hitPixel.element].isBlood === true) { + if (Math.random() > 0.9995 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2020))) { + hitPixel.element = "white_blood_cell"; + hitPixel.color = elements.white_blood_cell.color; } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - if (elements[hitPixel.element].isBlood === true) { - if (Math.random() > 0.999 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2020))) { - hitPixel.element = "white_blood_cell"; - hitPixel.color = elements.white_blood_cell.color; - } + if (elements[hitPixel.element].isBlood === true) { + if (Math.random() > 0.9995 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2020))) { + hitPixel.element = "white_blood_cell"; + hitPixel.color = elements.white_blood_cell.color; } } } @@ -10881,174 +5581,28 @@ elements.real_bone_marrow = { speed: 0, poisoned: false, immune: false, + }, + extinguish: true, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } elements.cartilage = { color: "#DBDBDB", behavior: behaviors.WALL, + nutrTrans: 5, + oxygTrans: 5, + isMultiDie: false, + normDie: "quicklime", + otherDie: "water", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.99 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.9) { - changePixel(pixel,"water"); - } - else if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else if (Math.random() < 0.75) { - changePixel(pixel,"calcium"); - } - else { - changePixel(pixel,"glue"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.9) { - changePixel(pixel,"water"); - } - else if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else if (Math.random() < 0.75) { - changePixel(pixel,"quicklime"); - } - else { - changePixel(pixel,"calcium"); - } - } - else { - if (Math.random() < 0.9) { - changePixel(pixel,"water"); - } - else if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else if (Math.random() < 0.75) { - changePixel(pixel,"quicklime"); - } - else { - changePixel(pixel,"calcium"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } + doBioBone(pixel); + doDefaults(pixel); }, category:"structural", tempHigh: 200, @@ -11064,10 +5618,12 @@ elements.cartilage = { speed: 0, poisoned: false, immune: false, + }, breakInto: ["quicklime","calcium","meat","meat","water","water",null], movable: false, isBio: true, + renderer: renderPresets.FLESHBURN, burn: 1, burnTime: 100, burnInto: ["bone","bone","bone","bone","quicklime"], @@ -11089,12 +5645,19 @@ elements.cerebrospinal_fluid = { if (pixel.immune === true && pixel.poisoned != false) { pixel.poisoned = false } + if ((pixel.temp > 66 || pixel.burning) && Math.random() > 0.95) { + if (!pixel.burnt) { pixel.burnt = 1 } + else { pixel.burnt ++ } + } + if (pixel.char != pixel.burnt && pixel.burnt > pixel.char || !pixel.char) { + pixel.char = pixel.burnt + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 + hitPixel.oxygen += 15 + pixel.oxygen -= 15 } if (hitPixel.nutrition < pixel.nutrition) { hitPixel.nutrition += 10 @@ -11111,14 +5674,20 @@ elements.cerebrospinal_fluid = { hitPixel.poisoned = false hitPixel.immune = true } + if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burnt-- + } + if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burning = false + } } } if (!isEmpty(pixel.x, pixel.y+1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y+1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 + hitPixel.oxygen += 15 + pixel.oxygen -= 15 } if (hitPixel.nutrition < pixel.nutrition) { hitPixel.nutrition += 10 @@ -11135,14 +5704,20 @@ elements.cerebrospinal_fluid = { hitPixel.poisoned = false hitPixel.immune = true } + if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burnt-- + } + if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burning = false + } } } if (!isEmpty(pixel.x-1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x-1][pixel.y] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 + hitPixel.oxygen += 15 + pixel.oxygen -= 15 } if (hitPixel.nutrition < pixel.nutrition) { hitPixel.nutrition += 10 @@ -11159,14 +5734,20 @@ elements.cerebrospinal_fluid = { hitPixel.poisoned = false hitPixel.immune = true } + if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burnt-- + } + if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burning = false + } } } if (!isEmpty(pixel.x+1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x+1][pixel.y] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 + hitPixel.oxygen += 15 + pixel.oxygen -= 15 } if (hitPixel.nutrition < pixel.nutrition) { hitPixel.nutrition += 10 @@ -11183,6 +5764,12 @@ elements.cerebrospinal_fluid = { hitPixel.poisoned = false hitPixel.immune = true } + if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burnt-- + } + if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && hitPixel.burnt < 56 && Math.random() > 0.8) { + hitPixel.burning = false + } } } }, @@ -11239,9 +5826,11 @@ elements.cerebrospinal_fluid = { speed: 0, poisoned: false, immune: false, + }, extinguish: true, - isBio: true + isBio: true, + renderer: renderPresets.FLESHBURN, } elements.urine = { @@ -11357,6 +5946,13 @@ elements.brain_jar_juice = { if (pixel.immune === true && pixel.poisoned != false) { pixel.poisoned = false } + if ((pixel.temp > 66 || pixel.burning) && Math.random() > 0.95) { + if (!pixel.burnt) { pixel.burnt = 1 } + else { pixel.burnt ++ } + } + if (pixel.char != pixel.burnt && pixel.burnt > pixel.char || !pixel.char) { + pixel.char = pixel.burnt + } if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { @@ -11444,6 +6040,7 @@ elements.brain_jar_juice = { speed: 0, poisoned: false, immune: false, + }, extinguish: true } @@ -11469,7 +6066,7 @@ elements.bacteria = { "rotten_cheese": { elem2:null, chance:0.05, func:behaviors.FEEDPIXEL }, "cheese": { elem2:"rotten_cheese", chance:0.5, func:behaviors.FEEDPIXEL }, "meat": { elem2:"rotten_meat", chance:0.5, func:behaviors.FEEDPIXEL }, - "immune_meat": { elem1:[null,null,null,null,null,null,null,null,null,"dna"], chance:0.01 }, + "cured_meat": { elem1:[null,null,null,null,null,null,null,null,null,"dna"], chance:0.01 }, "dead_plant": { elem2:"dirt", chance:0.05, func:behaviors.FEEDPIXEL }, "dead_bug": { elem2:null, chance:0.02, func:behaviors.FEEDPIXEL }, "mercury": { elem1:[null,null,null,null,null,null,null,null,null,"dna"], chance:0.1 }, @@ -11508,148 +6105,19 @@ elements.tract = { onSelect: function() { logMessage("Draw a pipe, wait for walls to appear, then erase the exit hole."); }, + nutrTrans: 15, + oxygTrans: 15, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } + doBioNorm(pixel); + doDefaults(pixel); if (!pixel.stage && pixelTicks-pixel.start > 60) { for (var i = 0; i < squareCoords.length; i++) { var coord = squareCoords[i]; @@ -11756,7 +6224,6 @@ elements.tract = { } } } - doDefaults(pixel); }, category: "structural", movable: false, @@ -11783,14 +6250,23 @@ elements.tract = { speed: 0, poisoned: false, immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, } elements.biosensor = { color: ["#AD6770","#B0707D"], category: "nervous system", behavior: behaviors.WALL, + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, @@ -11807,144 +6283,7 @@ elements.biosensor = { } } } - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } + doBioNorm(pixel); doDefaults(pixel); }, ignore: ["flash"], @@ -11969,8 +6308,10 @@ elements.biosensor = { speed: 0, poisoned: false, immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -11978,6 +6319,13 @@ elements.bioplate = { color: ["#AD6770","#B0707D"], category: "nervous system", behavior: behaviors.WALL, + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, @@ -12006,144 +6354,7 @@ elements.bioplate = { else if (pixel.on) { pixel.on = false; } - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } + doBioNorm(pixel); doDefaults(pixel); }, ignore: ["flash"], @@ -12168,8 +6379,10 @@ elements.bioplate = { speed: 0, poisoned: false, immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -12182,149 +6395,19 @@ elements.biocloner = { "BCF|XX|BCF", "XX|BCF|XX", ], + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -- - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - doDefaults(pixel) + doBioNorm(pixel); + doDefaults(pixel); if (pixel.clone) { return } for (var i = 0; i < adjacentCoords.length; i++) { var coords = adjacentCoords[i]; @@ -12363,8 +6446,10 @@ elements.biocloner = { speed: 0, poisoned: false, immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -12377,52 +6462,19 @@ elements.valve = { "DL:valve_extension|XX|DL:valve_extension", "XX|DL:valve_extension|XX", ], + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition-- - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } + doBioNorm(pixel); + doDefaults(pixel); if (pixel.charge || !pixel.open) { pixel.openAge = 0 pixel.open = true @@ -12442,103 +6494,6 @@ elements.valve = { } } } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - doDefaults(pixel); }, density: 2710, state: "solid", @@ -12561,8 +6516,10 @@ elements.valve = { speed: 0, poisoned: false, immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -12571,148 +6528,18 @@ elements.valve_extension = { color: ["#9e4839","#ba6449"], category: "nervous system", behavior: behaviors.WALL, + nutrTrans: 10, + oxygTrans: 10, + isMultiDie: true, + normDie: "meat", + roomDie: "rotten_meat", + coldDie: "frozen_meat", + heatDie: "cooked_meat", hoverStat: function(pixel) { return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen }, tick: function(pixel) { - if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 43 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0)) { - pixel.nutrition -= 2 - pixel.oxygen -= 2 - } - if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) { - if (pixel.temp > 95) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"cooked_meat"); - } - } - else if (pixel.temp < -15) { - if (Math.random() < 0.75) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"frozen_meat"); - } - } - else { - if (Math.random() < 0.999) { - changePixel(pixel,"meat"); - } - else { - changePixel(pixel,"rotten_meat"); - } - } - } - if (pixel.nutrition === null || isNaN(pixel.nutrition)) { - pixel.nutrition = 500 - } - if (pixel.oxygen === null || isNaN(pixel.oxygen)) { - pixel.oxygen = 500 - } - if (pixel.speed === null || isNaN(pixel.speed)) { - pixel.speed = 0 - } - if (pixel.immune === true && pixel.poisoned != false) { - pixel.poisoned = false - } - if (!isEmpty(pixel.x, pixel.y-1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y-1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x, pixel.y+1, true)) { - var hitPixel = pixelMap[pixel.x][pixel.y+1] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x-1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x-1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } - if (!isEmpty(pixel.x+1, pixel.y, true)) { - var hitPixel = pixelMap[pixel.x+1][pixel.y] - if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) { - if (hitPixel.oxygen < pixel.oxygen) { - hitPixel.oxygen += 10 - pixel.oxygen -= 10 - } - if (hitPixel.nutrition < pixel.nutrition) { - hitPixel.nutrition += 10 - pixel.nutrition -= 10 - } - if (hitPixel.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (hitPixel.poisoned != true && pixel.poisoned == true) { - hitPixel.poisoned = true - } - if (hitPixel.immune != true && pixel.immune == true) { - hitPixel.poisoned = false - hitPixel.immune = true - } - } - } + doBioNorm(pixel); doDefaults(pixel); }, density: 2710, @@ -12735,8 +6562,10 @@ elements.valve_extension = { speed: 0, poisoned: false, immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, hidden: true, } @@ -12842,186 +6671,186 @@ elements.toilet = { } if (!elements.cancer.reactions) { elements.cancer.reactions = {} } -elements.cancer.reactions.attached_hair = { "elem2": "loose_hair", chance:0.4 }; -elements.cancer.reactions.hair_end = { "elem2": "loose_hair", chance:0.4 }; -elements.cancer.reactions.flesh = { "elem2": "cancer", chance:0.005 }; -elements.cancer.reactions.slimey_flesh = { "elem2": ["slime","cancer"], chance:0.004 }; -elements.cancer.reactions.acidic_flesh = { "elem2": ["acid","cancer"], chance:0.004 }; -elements.cancer.reactions.cloak_flesh = { "elem2": "cancer", chance:0.004 }; -elements.cancer.reactions.adipose = { "elem2": "cancer", chance:0.005 }; -elements.cancer.reactions.blood_vessel = { "elem2": ["cancer","infected_vessel","infected_vessel","infected_vessel","infected_vessel"], chance:0.05 }; -elements.cancer.reactions.white_blood_cell = { "elem2": ["cancer","blood","blood_vessel","blood_vessel","infected_vessel"], chance:0.005 }; -elements.cancer.reactions.heart = { "elem2": "cancer", chance:0.005 }; -elements.cancer.reactions.kidney = { "elem2": "cancer", chance:0.005 }; -elements.cancer.reactions.liver = { "elem2": "cancer", chance:0.005 }; -elements.cancer.reactions.dermis = { "elem2": "cancer", chance:0.005 }; -elements.cancer.reactions.amphib_dermis = { "elem2": "cancer", chance:0.005 }; -elements.cancer.reactions.scale_dermis = { "elem2": "cancer", chance:0.004 }; -elements.cancer.reactions.epidermis = { "elem2": "cancer", chance:0.0002 }; -elements.cancer.reactions.amphib_skin = { "elem2": "cancer", chance:0.0003 }; -elements.cancer.reactions.hairy_skin = { "elem2": "cancer", chance:0.0003 }; -elements.cancer.reactions.hair_dermis = { "elem2": "cancer", chance:0.0003 }; -elements.cancer.reactions.scales = { "elem2": "cancer", chance:0.0001 }; -elements.cancer.reactions.real_bone = { "elem2": ["bone","bone","cancer"], chance:0.0001 }; -elements.cancer.reactions.real_bone_marrow = { "elem2": ["bone","cancer","cancer","cancer","cancer","cancer","cancer"], chance:0.0001 }; -elements.cancer.reactions.lungs = { "elem2": "cancer", chance:0.005 }; -elements.cancer.reactions.simple_lung = { "elem2": "cancer", chance:0.005 }; -elements.cancer.reactions.gills = { "elem2": "cancer", chance:0.005 }; -elements.cancer.reactions.brain = { "elem2": "cancer", chance:0.005 }; -elements.cancer.reactions.nerve = { "elem2": "cancer", chance:0.005 }; -elements.cancer.reactions.olfactory_bulb = { "elem2": "cancer", chance:0.005 }; -elements.cancer.reactions.eye = { "elem2": "cancer", chance:0.005 }; -elements.cancer.reactions.sphincter = { "elem2": "cancer", chance:0.005 }; -elements.cancer.reactions.digested_material = { "elem2": "cancer", chance:0.001 }; -elements.cancer.reactions.intestines = { "elem2": "cancer", chance:0.005 }; -elements.cancer.reactions.stomach_valve = { "elem2": "cancer", chance:0.005 }; -elements.cancer.reactions.stomach_lining = { "elem2": "cancer", chance:0.005 }; -elements.cancer.reactions.decomposer_stomach = { "elem2": "cancer", chance:0.004 }; -elements.cancer.reactions.herbi_stomach = { "elem2": "cancer", chance:0.004 }; -elements.cancer.reactions.carni_stomach = { "elem2": "cancer", chance:0.004 }; -elements.cancer.reactions.explosive_stomach = { "elem2": ["pop","cancer","cancer","cancer"], chance:0.003 }; -elements.cancer.reactions.biotorch = { "elem2": ["cooked_meat","cancer","cancer","cancer"], chance:0.003 }; -elements.cancer.reactions.biosensor = { "elem2": "cancer", chance:0.005 }; -elements.cancer.reactions.valve = { "elem2": "cancer", chance:0.005 }; -elements.cancer.reactions.valve_extension = { "elem2": "cancer", chance:0.005 }; -elements.cancer.reactions.throat_lining = { "elem2": "cancer", chance:0.005 }; +elements.cancer.reactions.attached_hair = { elem2: "loose_hair", chance:0.4 }; +elements.cancer.reactions.hair_end = { elem2: "loose_hair", chance:0.4 }; +elements.cancer.reactions.flesh = { elem2: "cancer", chance:0.005 }; +elements.cancer.reactions.slimey_flesh = { elem2: ["slime","cancer"], chance:0.004 }; +elements.cancer.reactions.acidic_flesh = { elem2: ["acid","cancer"], chance:0.004 }; +elements.cancer.reactions.cloak_flesh = { elem2: "cancer", chance:0.004 }; +elements.cancer.reactions.adipose = { elem2: "cancer", chance:0.005 }; +elements.cancer.reactions.blood_vessel = { elem2: ["cancer","infected_vessel","infected_vessel","infected_vessel","infected_vessel"], chance:0.05 }; +elements.cancer.reactions.white_blood_cell = { elem2: ["cancer","blood","blood_vessel","blood_vessel","infected_vessel"], chance:0.005 }; +elements.cancer.reactions.heart = { elem2: "cancer", chance:0.005 }; +elements.cancer.reactions.kidney = { elem2: "cancer", chance:0.005 }; +elements.cancer.reactions.liver = { elem2: "cancer", chance:0.005 }; +elements.cancer.reactions.dermis = { elem2: "cancer", chance:0.005 }; +elements.cancer.reactions.amphib_dermis = { elem2: "cancer", chance:0.005 }; +elements.cancer.reactions.scale_dermis = { elem2: "cancer", chance:0.004 }; +elements.cancer.reactions.epidermis = { elem2: "cancer", chance:0.0002 }; +elements.cancer.reactions.amphib_skin = { elem2: "cancer", chance:0.0003 }; +elements.cancer.reactions.hairy_skin = { elem2: "cancer", chance:0.0003 }; +elements.cancer.reactions.hair_dermis = { elem2: "cancer", chance:0.0003 }; +elements.cancer.reactions.scales = { elem2: "cancer", chance:0.0001 }; +elements.cancer.reactions.real_bone = { elem2: ["bone","bone","cancer"], chance:0.0001 }; +elements.cancer.reactions.real_bone_marrow = { elem2: ["bone","cancer","cancer","cancer","cancer","cancer","cancer"], chance:0.0001 }; +elements.cancer.reactions.lungs = { elem2: "cancer", chance:0.005 }; +elements.cancer.reactions.simple_lung = { elem2: "cancer", chance:0.005 }; +elements.cancer.reactions.gills = { elem2: "cancer", chance:0.005 }; +elements.cancer.reactions.brain = { elem2: "cancer", chance:0.005 }; +elements.cancer.reactions.nerve = { elem2: "cancer", chance:0.005 }; +elements.cancer.reactions.olfactory_bulb = { elem2: "cancer", chance:0.005 }; +elements.cancer.reactions.eye = { elem2: "cancer", chance:0.005 }; +elements.cancer.reactions.sphincter = { elem2: "cancer", chance:0.005 }; +elements.cancer.reactions.digested_material = { elem2: "cancer", chance:0.001 }; +elements.cancer.reactions.intestines = { elem2: "cancer", chance:0.005 }; +elements.cancer.reactions.stomach_valve = { elem2: "cancer", chance:0.005 }; +elements.cancer.reactions.stomach_lining = { elem2: "cancer", chance:0.005 }; +elements.cancer.reactions.decomposer_stomach = { elem2: "cancer", chance:0.004 }; +elements.cancer.reactions.herbi_stomach = { elem2: "cancer", chance:0.004 }; +elements.cancer.reactions.carni_stomach = { elem2: "cancer", chance:0.004 }; +elements.cancer.reactions.explosive_stomach = { elem2: ["pop","cancer","cancer","cancer"], chance:0.003 }; +elements.cancer.reactions.biotorch = { elem2: ["cooked_meat","cancer","cancer","cancer"], chance:0.003 }; +elements.cancer.reactions.biosensor = { elem2: "cancer", chance:0.005 }; +elements.cancer.reactions.valve = { elem2: "cancer", chance:0.005 }; +elements.cancer.reactions.valve_extension = { elem2: "cancer", chance:0.005 }; +elements.cancer.reactions.throat_lining = { elem2: "cancer", chance:0.005 }; if (!elements.uranium.reactions) { elements.uranium.reactions = {} } -elements.uranium.reactions.attached_hair = { "elem2": "loose_hair", chance:0.4 }; -elements.uranium.reactions.hair_end = { "elem2": "loose_hair", chance:0.4 }; -elements.uranium.reactions.flesh = { "elem2": ["ash","blood","fat","meat","rotten_meat","cooked_meat"], chance:0.5 }; -elements.uranium.reactions.slimey_flesh = { "elem2": ["ash","slime","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.4 }; -elements.uranium.reactions.acidic_flesh = { "elem2": ["ash","acid","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.4 }; -elements.uranium.reactions.cloak_flesh = { "elem2": ["ash","blood","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.4 }; -elements.uranium.reactions.adipose = { "elem2": ["ash","blood","fat","fat","meat","rotten_meat","cooked_meat"], chance:0.5 }; -elements.uranium.reactions.blood_vessel = { "elem2": ["ash","blood","blood","blood","blood","blood","infected_vessel","meat","rotten_meat","cooked_meat"], chance:0.5 }; -elements.uranium.reactions.heart = { "elem2": ["ash","blood","blood","blood","blood","blood","infected_vessel","meat","rotten_meat","cooked_meat"], chance:0.5 }; -elements.uranium.reactions.kidney = { "elem2": ["ash","blood","meat","rotten_meat","cooked_meat"], chance:0.5 }; -elements.uranium.reactions.liver = { "elem2": ["ash","blood","meat","rotten_meat","cooked_meat"], chance:0.5 }; -elements.uranium.reactions.dermis = { "elem2": ["ash","blood","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.5 }; -elements.uranium.reactions.amphib_dermis = { "elem2": ["ash","blood","slime","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.5 }; -elements.uranium.reactions.scale_dermis = { "elem2": ["ash","blood","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.5 }; -elements.uranium.reactions.bug_dermis = { "elem2": ["ash","blood","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.5 }; -elements.uranium.reactions.epidermis = { "elem2": ["cooked_meat","cancer","ash","skin"], chance:0.1 }; -elements.uranium.reactions.hairy_skin = { "elem2": ["cooked_meat","cancer","ash","skin","hair"], chance:0.1 }; -elements.uranium.reactions.hair_dermis = { "elem2": ["ash","blood","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.5 }; -elements.uranium.reactions.amphib_skin = { "elem2": ["cooked_meat","cancer","ash","skin","slime"], chance:0.4 }; -elements.uranium.reactions.scales = { "elem2": ["cooked_meat","cancer","ash","epidermis","skin","dust","calcium"], chance:0.1 }; -elements.uranium.reactions.exoskeleton = { "elem2": ["cooked_meat","cancer","ash","epidermis","skin","dust","calcium"], chance:0.1 }; -elements.uranium.reactions.real_bone = { "elem2": ["bone","bone","radiation"], chance:0.01 }; -elements.uranium.reactions.gills = { "elem2": ["ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 }; -elements.uranium.reactions.lungs = { "elem2": ["ash","carbon_dioxide","meat","rotten_meat","cooked_meat","flesh","ash","carbon_dioxide","meat","rotten_meat","cooked_meat","flesh","ash","oxygen","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 }; -elements.uranium.reactions.simple_lung = { "elem2": ["ash","carbon_dioxide","meat","rotten_meat","cooked_meat","flesh","ash","carbon_dioxide","meat","rotten_meat","cooked_meat","flesh","ash","oxygen","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 }; -elements.uranium.reactions.brain = { "elem2": ["ash","steam","salt","meat","rotten_meat","cooked_meat","flesh","cerebrospinal_fluid"], chance:0.5 }; -elements.uranium.reactions.amygdala = { "elem2": ["ash","steam","salt","ash","steam","salt","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 }; -elements.uranium.reactions.nerve = { "elem2": ["ash","steam","salt","ash","steam","salt","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 }; -elements.uranium.reactions.olfactory_bulb = { "elem2": ["ash","steam","salt","ash","steam","salt","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 }; -elements.uranium.reactions.eye = { "elem2": ["ash","steam","salt","ash","steam","salt","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 }; -elements.uranium.reactions.sphincter = { "elem2": ["ash","steam","poop","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 }; -elements.uranium.reactions.intestines = { "elem2": ["ash","steam","meat","rotten_meat","cooked_meat","flesh","ash","steam","meat","rotten_meat","cooked_meat","flesh","poop"], chance:0.5 }; -elements.uranium.reactions.stomach_valve = { "elem2": ["ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 }; -elements.uranium.reactions.stomach_lining = { "elem2": ["ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 }; -elements.uranium.reactions.decomposer_stomach = { "elem2": ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 }; -elements.uranium.reactions.herbi_stomach = { "elem2": ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 }; -elements.uranium.reactions.carni_stomach = { "elem2": ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 }; -elements.uranium.reactions.explosive_stomach = { "elem2": ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh","pop"], chance:0.4 }; -elements.uranium.reactions.throat_lining = { "elem2": ["ash","slime","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 }; -elements.uranium.reactions.biotorch = { "elem2": ["cancer","ash","steam","cooked_meat","rotten_meat","cooked_meat","flesh","fire"], chance:0.5 }; -elements.uranium.reactions.biosensor = { "elem2": ["ash","blood","fat","meat","rotten_meat","cooked_meat"], chance:0.5 }; -elements.uranium.reactions.valve = { "elem2": ["ash","blood","fat","meat","rotten_meat","cooked_meat"], chance:0.5 }; -elements.uranium.reactions.valve_extension = { "elem2": ["ash","blood","fat","meat","rotten_meat","cooked_meat"], chance:0.5 }; +elements.uranium.reactions.attached_hair = { elem2: "loose_hair", chance:0.4 }; +elements.uranium.reactions.hair_end = { elem2: "loose_hair", chance:0.4 }; +elements.uranium.reactions.flesh = { elem2: ["ash","blood","fat","meat","rotten_meat","cooked_meat"], chance:0.5 }; +elements.uranium.reactions.slimey_flesh = { elem2: ["ash","slime","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.4 }; +elements.uranium.reactions.acidic_flesh = { elem2: ["ash","acid","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.4 }; +elements.uranium.reactions.cloak_flesh = { elem2: ["ash","blood","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.4 }; +elements.uranium.reactions.adipose = { elem2: ["ash","blood","fat","fat","meat","rotten_meat","cooked_meat"], chance:0.5 }; +elements.uranium.reactions.blood_vessel = { elem2: ["ash","blood","blood","blood","blood","blood","infected_vessel","meat","rotten_meat","cooked_meat"], chance:0.5 }; +elements.uranium.reactions.heart = { elem2: ["ash","blood","blood","blood","blood","blood","infected_vessel","meat","rotten_meat","cooked_meat"], chance:0.5 }; +elements.uranium.reactions.kidney = { elem2: ["ash","blood","meat","rotten_meat","cooked_meat"], chance:0.5 }; +elements.uranium.reactions.liver = { elem2: ["ash","blood","meat","rotten_meat","cooked_meat"], chance:0.5 }; +elements.uranium.reactions.dermis = { elem2: ["ash","blood","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.5 }; +elements.uranium.reactions.amphib_dermis = { elem2: ["ash","blood","slime","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.5 }; +elements.uranium.reactions.scale_dermis = { elem2: ["ash","blood","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.5 }; +elements.uranium.reactions.bug_dermis = { elem2: ["ash","blood","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.5 }; +elements.uranium.reactions.epidermis = { elem2: ["cooked_meat","cancer","ash","skin"], chance:0.1 }; +elements.uranium.reactions.hairy_skin = { elem2: ["cooked_meat","cancer","ash","skin","hair"], chance:0.1 }; +elements.uranium.reactions.hair_dermis = { elem2: ["ash","blood","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.5 }; +elements.uranium.reactions.amphib_skin = { elem2: ["cooked_meat","cancer","ash","skin","slime"], chance:0.4 }; +elements.uranium.reactions.scales = { elem2: ["cooked_meat","cancer","ash","epidermis","skin","dust","calcium"], chance:0.1 }; +elements.uranium.reactions.exoskeleton = { elem2: ["cooked_meat","cancer","ash","epidermis","skin","dust","calcium"], chance:0.1 }; +elements.uranium.reactions.real_bone = { elem2: ["bone","bone","radiation"], chance:0.01 }; +elements.uranium.reactions.gills = { elem2: ["ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 }; +elements.uranium.reactions.lungs = { elem2: ["ash","carbon_dioxide","meat","rotten_meat","cooked_meat","flesh","ash","carbon_dioxide","meat","rotten_meat","cooked_meat","flesh","ash","oxygen","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 }; +elements.uranium.reactions.simple_lung = { elem2: ["ash","carbon_dioxide","meat","rotten_meat","cooked_meat","flesh","ash","carbon_dioxide","meat","rotten_meat","cooked_meat","flesh","ash","oxygen","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 }; +elements.uranium.reactions.brain = { elem2: ["ash","steam","salt","meat","rotten_meat","cooked_meat","flesh","cerebrospinal_fluid"], chance:0.5 }; +elements.uranium.reactions.amygdala = { elem2: ["ash","steam","salt","ash","steam","salt","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 }; +elements.uranium.reactions.nerve = { elem2: ["ash","steam","salt","ash","steam","salt","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 }; +elements.uranium.reactions.olfactory_bulb = { elem2: ["ash","steam","salt","ash","steam","salt","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 }; +elements.uranium.reactions.eye = { elem2: ["ash","steam","salt","ash","steam","salt","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 }; +elements.uranium.reactions.sphincter = { elem2: ["ash","steam","poop","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 }; +elements.uranium.reactions.intestines = { elem2: ["ash","steam","meat","rotten_meat","cooked_meat","flesh","ash","steam","meat","rotten_meat","cooked_meat","flesh","poop"], chance:0.5 }; +elements.uranium.reactions.stomach_valve = { elem2: ["ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 }; +elements.uranium.reactions.stomach_lining = { elem2: ["ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 }; +elements.uranium.reactions.decomposer_stomach = { elem2: ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 }; +elements.uranium.reactions.herbi_stomach = { elem2: ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 }; +elements.uranium.reactions.carni_stomach = { elem2: ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 }; +elements.uranium.reactions.explosive_stomach = { elem2: ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh","pop"], chance:0.4 }; +elements.uranium.reactions.throat_lining = { elem2: ["ash","slime","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 }; +elements.uranium.reactions.biotorch = { elem2: ["cancer","ash","steam","cooked_meat","rotten_meat","cooked_meat","flesh","fire"], chance:0.5 }; +elements.uranium.reactions.biosensor = { elem2: ["ash","blood","fat","meat","rotten_meat","cooked_meat"], chance:0.5 }; +elements.uranium.reactions.valve = { elem2: ["ash","blood","fat","meat","rotten_meat","cooked_meat"], chance:0.5 }; +elements.uranium.reactions.valve_extension = { elem2: ["ash","blood","fat","meat","rotten_meat","cooked_meat"], chance:0.5 }; if (!elements.radiation.reactions) { elements.radiation.reactions = {} } -elements.radiation.reactions.attached_hair = { "elem2": "loose_hair", chance:0.4 }; -elements.radiation.reactions.hair_end = { "elem2": "loose_hair", chance:0.4 }; -elements.radiation.reactions.flesh = { "elem2": ["ash","blood","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.4 }; -elements.radiation.reactions.slimey_flesh = { "elem2": ["ash","slime","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.4 }; -elements.radiation.reactions.acidic_flesh = { "elem2": ["ash","acid","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.4 }; -elements.radiation.reactions.cloak_flesh = { "elem2": ["ash","blood","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.4 }; -elements.radiation.reactions.adipose = { "elem2": ["ash","blood","fat","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.4 }; -elements.radiation.reactions.blood_vessel = { "elem2": ["ash","blood","blood","blood","blood","blood","infected_vessel","meat","rotten_meat","cooked_meat"], chance:0.4 }; -elements.radiation.reactions.heart = { "elem2": ["ash","blood","blood","blood","blood","infected_vessel","blood","meat","rotten_meat","cooked_meat"], chance:0.4 }; -elements.radiation.reactions.kidney = { "elem2": ["ash","blood","meat","rotten_meat","cooked_meat"], chance:0.5 }; -elements.radiation.reactions.liver = { "elem2": ["ash","blood","meat","rotten_meat","cooked_meat"], chance:0.5 }; -elements.radiation.reactions.dermis = { "elem2": ["ash","blood","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.4 }; -elements.radiation.reactions.amphib_dermis = { "elem2": ["ash","blood","slime","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.4 }; -elements.radiation.reactions.scale_dermis = { "elem2": ["ash","blood","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.4 }; -elements.radiation.reactions.scales = { "elem2": ["cooked_meat","cancer","ash","epidermis","skin","dust","calcium"], chance:0.1 }; -elements.radiation.reactions.exoskeleton = { "elem2": ["cooked_meat","cancer","ash","epidermis","skin","dust","calcium"], chance:0.1 }; -elements.radiation.reactions.bug_dermis = { "elem2": ["ash","blood","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.4 }; -elements.radiation.reactions.epidermis = { "elem2": ["cooked_meat","cancer","ash","skin"], chance:0.1 }; -elements.radiation.reactions.hairy_skin = { "elem2": ["cooked_meat","cancer","ash","skin","hair"], chance:0.1 }; -elements.radiation.reactions.hair_dermis = { "elem2": ["ash","blood","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.4 }; -elements.radiation.reactions.amphib_skin = { "elem2": ["cooked_meat","cancer","ash","skin","slime"], chance:0.1 }; -elements.radiation.reactions.real_bone = { "elem2": ["bone","bone","radiation"], chance:0.01 }; -elements.radiation.reactions.gills = { "elem2": ["ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }; -elements.radiation.reactions.lungs = { "elem2": ["cancer","ash","carbon_dioxide","meat","rotten_meat","cooked_meat","flesh","ash","carbon_dioxide","meat","rotten_meat","cooked_meat","flesh","ash","oxygen","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }; -elements.radiation.reactions.simple_lung = { "elem2": ["cancer","ash","carbon_dioxide","meat","rotten_meat","cooked_meat","flesh","ash","carbon_dioxide","meat","rotten_meat","cooked_meat","flesh","ash","oxygen","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }; -elements.radiation.reactions.brain = { "elem2": ["cancer","ash","steam","salt","meat","rotten_meat","cooked_meat","flesh","cerebrospinal_fluid"], chance:0.4 }; -elements.radiation.reactions.amygdala = { "elem2": ["cancer","ash","steam","salt","ash","steam","salt","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }; -elements.radiation.reactions.nerve = { "elem2": ["cancer","ash","steam","salt","ash","steam","salt","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }; -elements.radiation.reactions.olfactory_bulb = { "elem2": ["cancer","ash","steam","salt","ash","steam","salt","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }; -elements.radiation.reactions.eye = { "elem2": ["cancer","ash","steam","salt","ash","steam","salt","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }; -elements.radiation.reactions.sphincter = { "elem2": ["cancer","ash","steam","poop","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }; -elements.radiation.reactions.intestines = { "elem2": ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh","ash","steam","meat","rotten_meat","cooked_meat","flesh","poop"], chance:0.4 }; -elements.radiation.reactions.stomach_valve = { "elem2": ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }; -elements.radiation.reactions.stomach_lining = { "elem2": ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }; -elements.radiation.reactions.decomposer_stomach = { "elem2": ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }; -elements.radiation.reactions.herbi_stomach = { "elem2": ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }; -elements.radiation.reactions.carni_stomach = { "elem2": ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }; -elements.radiation.reactions.explosive_stomach = { "elem2": ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh","pop"], chance:0.3 }; -elements.radiation.reactions.throat_lining = { "elem2": ["cancer","ash","slime","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }; -elements.radiation.reactions.biotorch = { "elem2": ["cancer","ash","steam","cooked_meat","rotten_meat","cooked_meat","flesh","fire"], chance:0.4 }; -elements.radiation.reactions.biosensor = { "elem2": ["ash","blood","fat","meat","rotten_meat","cooked_meat"], chance:0.4 }; -elements.radiation.reactions.valve = { "elem2": ["ash","blood","fat","meat","rotten_meat","cooked_meat"], chance:0.4 }; -elements.radiation.reactions.valve_extension = { "elem2": ["ash","blood","fat","meat","rotten_meat","cooked_meat"], chance:0.4 }; +elements.radiation.reactions.attached_hair = { elem2: "loose_hair", chance:0.4 }; +elements.radiation.reactions.hair_end = { elem2: "loose_hair", chance:0.4 }; +elements.radiation.reactions.flesh = { elem2: ["ash","blood","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.4 }; +elements.radiation.reactions.slimey_flesh = { elem2: ["ash","slime","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.4 }; +elements.radiation.reactions.acidic_flesh = { elem2: ["ash","acid","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.4 }; +elements.radiation.reactions.cloak_flesh = { elem2: ["ash","blood","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.4 }; +elements.radiation.reactions.adipose = { elem2: ["ash","blood","fat","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.4 }; +elements.radiation.reactions.blood_vessel = { elem2: ["ash","blood","blood","blood","blood","blood","infected_vessel","meat","rotten_meat","cooked_meat"], chance:0.4 }; +elements.radiation.reactions.heart = { elem2: ["ash","blood","blood","blood","blood","infected_vessel","blood","meat","rotten_meat","cooked_meat"], chance:0.4 }; +elements.radiation.reactions.kidney = { elem2: ["ash","blood","meat","rotten_meat","cooked_meat"], chance:0.5 }; +elements.radiation.reactions.liver = { elem2: ["ash","blood","meat","rotten_meat","cooked_meat"], chance:0.5 }; +elements.radiation.reactions.dermis = { elem2: ["ash","blood","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.4 }; +elements.radiation.reactions.amphib_dermis = { elem2: ["ash","blood","slime","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.4 }; +elements.radiation.reactions.scale_dermis = { elem2: ["ash","blood","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.4 }; +elements.radiation.reactions.scales = { elem2: ["cooked_meat","cancer","ash","epidermis","skin","dust","calcium"], chance:0.1 }; +elements.radiation.reactions.exoskeleton = { elem2: ["cooked_meat","cancer","ash","epidermis","skin","dust","calcium"], chance:0.1 }; +elements.radiation.reactions.bug_dermis = { elem2: ["ash","blood","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.4 }; +elements.radiation.reactions.epidermis = { elem2: ["cooked_meat","cancer","ash","skin"], chance:0.1 }; +elements.radiation.reactions.hairy_skin = { elem2: ["cooked_meat","cancer","ash","skin","hair"], chance:0.1 }; +elements.radiation.reactions.hair_dermis = { elem2: ["ash","blood","fat","meat","rotten_meat","cooked_meat","cancer","cancer"], chance:0.4 }; +elements.radiation.reactions.amphib_skin = { elem2: ["cooked_meat","cancer","ash","skin","slime"], chance:0.1 }; +elements.radiation.reactions.real_bone = { elem2: ["bone","bone","radiation"], chance:0.01 }; +elements.radiation.reactions.gills = { elem2: ["ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }; +elements.radiation.reactions.lungs = { elem2: ["cancer","ash","carbon_dioxide","meat","rotten_meat","cooked_meat","flesh","ash","carbon_dioxide","meat","rotten_meat","cooked_meat","flesh","ash","oxygen","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }; +elements.radiation.reactions.simple_lung = { elem2: ["cancer","ash","carbon_dioxide","meat","rotten_meat","cooked_meat","flesh","ash","carbon_dioxide","meat","rotten_meat","cooked_meat","flesh","ash","oxygen","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }; +elements.radiation.reactions.brain = { elem2: ["cancer","ash","steam","salt","meat","rotten_meat","cooked_meat","flesh","cerebrospinal_fluid"], chance:0.4 }; +elements.radiation.reactions.amygdala = { elem2: ["cancer","ash","steam","salt","ash","steam","salt","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }; +elements.radiation.reactions.nerve = { elem2: ["cancer","ash","steam","salt","ash","steam","salt","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }; +elements.radiation.reactions.olfactory_bulb = { elem2: ["cancer","ash","steam","salt","ash","steam","salt","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }; +elements.radiation.reactions.eye = { elem2: ["cancer","ash","steam","salt","ash","steam","salt","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }; +elements.radiation.reactions.sphincter = { elem2: ["cancer","ash","steam","poop","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }; +elements.radiation.reactions.intestines = { elem2: ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh","ash","steam","meat","rotten_meat","cooked_meat","flesh","poop"], chance:0.4 }; +elements.radiation.reactions.stomach_valve = { elem2: ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }; +elements.radiation.reactions.stomach_lining = { elem2: ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }; +elements.radiation.reactions.decomposer_stomach = { elem2: ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }; +elements.radiation.reactions.herbi_stomach = { elem2: ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }; +elements.radiation.reactions.carni_stomach = { elem2: ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }; +elements.radiation.reactions.explosive_stomach = { elem2: ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh","pop"], chance:0.3 }; +elements.radiation.reactions.throat_lining = { elem2: ["cancer","ash","slime","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 }; +elements.radiation.reactions.biotorch = { elem2: ["cancer","ash","steam","cooked_meat","rotten_meat","cooked_meat","flesh","fire"], chance:0.4 }; +elements.radiation.reactions.biosensor = { elem2: ["ash","blood","fat","meat","rotten_meat","cooked_meat"], chance:0.4 }; +elements.radiation.reactions.valve = { elem2: ["ash","blood","fat","meat","rotten_meat","cooked_meat"], chance:0.4 }; +elements.radiation.reactions.valve_extension = { elem2: ["ash","blood","fat","meat","rotten_meat","cooked_meat"], chance:0.4 }; if (!elements.plague.reactions) { elements.plague.reactions = {} } -elements.plague.reactions.attached_hair = { "elem2": "loose_hair", chance:0.04 }; -elements.plague.reactions.hair_end = { "elem2": "loose_hair", chance:0.04 }; -elements.plague.reactions.flesh = { "elem2": ["rotten_meat","plague","fat","meat","rotten_meat","plague","infection","infection"], chance:0.04 }; -elements.plague.reactions.slimey_flesh = { "elem2": ["slime","slime","rotten_meat","plague","fat","meat","rotten_meat","plague","infection","infection"], chance:0.04 }; -elements.plague.reactions.cloak_flesh = { "elem2": ["rotten_meat","plague","fat","meat","rotten_meat","plague","infection","infection"], chance:0.04 }; -elements.plague.reactions.acidic_flesh = { "elem2": ["acid","rotten_meat","steam","meat","rotten_meat","plague","flesh"], chance:0.04 }; -elements.plague.reactions.adipose = { "elem2": ["rotten_meat","plague","fat","fat","meat","rotten_meat","plague","infection","infection"], chance:0.04 }; -elements.plague.reactions.blood_vessel = { "elem2": ["rotten_meat","plague","meat","rotten_meat","plague","infected_vessel","infected_vessel","infected_vessel","infected_vessel","infected_vessel","infected_vessel"], chance:0.1 }; -elements.plague.reactions.heart = { "elem2": ["rotten_meat","plague","meat","rotten_meat","plague","infected_vessel","infection","infection","infection","infection","infection"], chance:0.04 }; -elements.plague.reactions.kidney = { "elem2": ["rotten_meat","plague","rotten_meat","meat","rotten_meat","plague","infection","infection"], chance:0.04 }; -elements.plague.reactions.liver = { "elem2": ["rotten_meat","plague","rotten_meat","meat","rotten_meat","plague","infection","infection"], chance:0.04 }; -elements.plague.reactions.dermis = { "elem2": ["rotten_meat","infection","fat","meat","rotten_meat","plague","infection","infection"], chance:0.04 }; -elements.plague.reactions.hair_dermis = { "elem2": ["rotten_meat","infection","fat","meat","rotten_meat","plague","infection","infection"], chance:0.04 }; -elements.plague.reactions.hairy_skin = { "elem2": ["plague","infection","rotten_meat","dust","dust","hair"], chance:0.04 }; -elements.plague.reactions.amphib_dermis = { "elem2": ["rotten_meat","infection","slime","meat","rotten_meat","plague","infection","infection"], chance:0.01 }; -elements.plague.reactions.scale_dermis = { "elem2": ["rotten_meat","infection","fat","meat","rotten_meat","plague","infection","infection"], chance:0.04 }; -elements.plague.reactions.epidermis = { "elem2": ["plague","infection","rotten_meat","dust","dust"], chance:0.01 }; -elements.plague.reactions.amphib_skin = { "elem2": ["plague","infection","rotten_meat","skin","slime"], chance:0.01 }; -elements.plague.reactions.scales = { "elem2": ["plague","infection","rotten_meat","dust","skin","calcium"], chance:0.01 }; -elements.plague.reactions.real_bone = { "elem2": ["bone","bone","infection","plague"], chance:0.01 }; -elements.plague.reactions.gills = { "elem2": ["infection","steam","meat","rotten_meat","plague","flesh","plague"], chance:0.05 }; -elements.plague.reactions.lungs = { "elem2": ["infection","rotten_meat","carbon_dioxide","meat","rotten_meat","plague","flesh","rotten_meat","carbon_dioxide","meat","rotten_meat","plague","flesh","rotten_meat","oxygen","meat","rotten_meat","plague","flesh"], chance:0.1 }; -elements.plague.reactions.simple_lung = { "elem2": ["infection","rotten_meat","carbon_dioxide","meat","rotten_meat","plague","flesh","rotten_meat","carbon_dioxide","meat","rotten_meat","plague","flesh","rotten_meat","oxygen","meat","rotten_meat","plague","flesh"], chance:0.04 }; -elements.plague.reactions.brain = { "elem2": ["infection","rotten_meat","steam","salt","meat","rotten_meat","plague","flesh","cerebrospinal_fluid"], chance:0.04 }; -elements.plague.reactions.amygdala = { "elem2": ["infection","rotten_meat","steam","salt","rotten_meat","steam","salt","meat","rotten_meat","plague","flesh"], chance:0.04 }; -elements.plague.reactions.nerve = { "elem2": ["infection","rotten_meat","steam","salt","rotten_meat","steam","salt","meat","rotten_meat","plague","flesh"], chance:0.04 }; -elements.plague.reactions.olfactory_bulb = { "elem2": ["infection","rotten_meat","steam","salt","rotten_meat","steam","salt","meat","rotten_meat","plague","flesh"], chance:0.04 }; -elements.plague.reactions.eye = { "elem2": ["infection","rotten_meat","steam","salt","rotten_meat","steam","salt","meat","rotten_meat","plague","flesh"], chance:0.04 }; -elements.plague.reactions.sphincter = { "elem2": ["infection","rotten_meat","steam","poop","meat","rotten_meat","plague","flesh"], chance:0.04 }; -elements.plague.reactions.intestines = { "elem2": ["infection","rotten_meat","steam","meat","rotten_meat","plague","flesh","rotten_meat","steam","meat","rotten_meat","plague","flesh","poop"], chance:0.04 }; -elements.plague.reactions.stomach_valve = { "elem2": ["infection","rotten_meat","steam","meat","rotten_meat","plague","flesh"], chance:0.04 }; -elements.plague.reactions.stomach_lining = { "elem2": ["infection","rotten_meat","steam","meat","rotten_meat","plague","flesh"], chance:0.04 }; -elements.plague.reactions.decomposer_stomach = { "elem2": ["infection","rotten_meat","steam","meat","rotten_meat","plague","flesh"], chance:0.04 }; -elements.plague.reactions.herbi_stomach = { "elem2": ["infection","rotten_meat","steam","meat","rotten_meat","plague","flesh"], chance:0.04 }; -elements.plague.reactions.carni_stomach = { "elem2": ["infection","rotten_meat","steam","meat","rotten_meat","plague","flesh"], chance:0.04 }; -elements.plague.reactions.explosive_stomach = { "elem2": ["infection","plague","steam","meat","rotten_meat","plague","flesh","pop"], chance:0.03 }; -elements.plague.reactions.throat_lining = { "elem2": ["infection","rotten_meat","slime","meat","rotten_meat","plague","flesh"], chance:0.04 }; -elements.plague.reactions.biotorch = { "elem2": ["infection","ash","steam","cooked_meat","rotten_meat","plague","plague","fire"], chance:0.04 }; -elements.plague.reactions.biosensor = { "elem2": ["infection","blood","fat","meat","rotten_meat","plague"], chance:0.04 }; -elements.plague.reactions.valve = { "elem2": ["infection","infection","fat","meat","rotten_meat","plague"], chance:0.04 }; -elements.plague.reactions.valve_extension = { "elem2": ["infection","infection","plague","meat","rotten_meat","plague"], chance:0.04 }; +elements.plague.reactions.attached_hair = { elem2: "loose_hair", chance:0.04 }; +elements.plague.reactions.hair_end = { elem2: "loose_hair", chance:0.04 }; +elements.plague.reactions.flesh = { elem2: ["rotten_meat","plague","fat","meat","rotten_meat","plague","infection","infection"], chance:0.04 }; +elements.plague.reactions.slimey_flesh = { elem2: ["slime","slime","rotten_meat","plague","fat","meat","rotten_meat","plague","infection","infection"], chance:0.04 }; +elements.plague.reactions.cloak_flesh = { elem2: ["rotten_meat","plague","fat","meat","rotten_meat","plague","infection","infection"], chance:0.04 }; +elements.plague.reactions.acidic_flesh = { elem2: ["acid","rotten_meat","steam","meat","rotten_meat","plague","flesh"], chance:0.04 }; +elements.plague.reactions.adipose = { elem2: ["rotten_meat","plague","fat","fat","meat","rotten_meat","plague","infection","infection"], chance:0.04 }; +elements.plague.reactions.blood_vessel = { elem2: ["rotten_meat","plague","meat","rotten_meat","plague","infected_vessel","infected_vessel","infected_vessel","infected_vessel","infected_vessel","infected_vessel"], chance:0.1 }; +elements.plague.reactions.heart = { elem2: ["rotten_meat","plague","meat","rotten_meat","plague","infected_vessel","infection","infection","infection","infection","infection"], chance:0.04 }; +elements.plague.reactions.kidney = { elem2: ["rotten_meat","plague","rotten_meat","meat","rotten_meat","plague","infection","infection"], chance:0.04 }; +elements.plague.reactions.liver = { elem2: ["rotten_meat","plague","rotten_meat","meat","rotten_meat","plague","infection","infection"], chance:0.04 }; +elements.plague.reactions.dermis = { elem2: ["rotten_meat","infection","fat","meat","rotten_meat","plague","infection","infection"], chance:0.04 }; +elements.plague.reactions.hair_dermis = { elem2: ["rotten_meat","infection","fat","meat","rotten_meat","plague","infection","infection"], chance:0.04 }; +elements.plague.reactions.hairy_skin = { elem2: ["plague","infection","rotten_meat","dust","dust","hair"], chance:0.04 }; +elements.plague.reactions.amphib_dermis = { elem2: ["rotten_meat","infection","slime","meat","rotten_meat","plague","infection","infection"], chance:0.01 }; +elements.plague.reactions.scale_dermis = { elem2: ["rotten_meat","infection","fat","meat","rotten_meat","plague","infection","infection"], chance:0.04 }; +elements.plague.reactions.epidermis = { elem2: ["plague","infection","rotten_meat","dust","dust"], chance:0.01 }; +elements.plague.reactions.amphib_skin = { elem2: ["plague","infection","rotten_meat","skin","slime"], chance:0.01 }; +elements.plague.reactions.scales = { elem2: ["plague","infection","rotten_meat","dust","skin","calcium"], chance:0.01 }; +elements.plague.reactions.real_bone = { elem2: ["bone","bone","infection","plague"], chance:0.01 }; +elements.plague.reactions.gills = { elem2: ["infection","steam","meat","rotten_meat","plague","flesh","plague"], chance:0.05 }; +elements.plague.reactions.lungs = { elem2: ["infection","rotten_meat","carbon_dioxide","meat","rotten_meat","plague","flesh","rotten_meat","carbon_dioxide","meat","rotten_meat","plague","flesh","rotten_meat","oxygen","meat","rotten_meat","plague","flesh"], chance:0.1 }; +elements.plague.reactions.simple_lung = { elem2: ["infection","rotten_meat","carbon_dioxide","meat","rotten_meat","plague","flesh","rotten_meat","carbon_dioxide","meat","rotten_meat","plague","flesh","rotten_meat","oxygen","meat","rotten_meat","plague","flesh"], chance:0.04 }; +elements.plague.reactions.brain = { elem2: ["infection","rotten_meat","steam","salt","meat","rotten_meat","plague","flesh","cerebrospinal_fluid"], chance:0.04 }; +elements.plague.reactions.amygdala = { elem2: ["infection","rotten_meat","steam","salt","rotten_meat","steam","salt","meat","rotten_meat","plague","flesh"], chance:0.04 }; +elements.plague.reactions.nerve = { elem2: ["infection","rotten_meat","steam","salt","rotten_meat","steam","salt","meat","rotten_meat","plague","flesh"], chance:0.04 }; +elements.plague.reactions.olfactory_bulb = { elem2: ["infection","rotten_meat","steam","salt","rotten_meat","steam","salt","meat","rotten_meat","plague","flesh"], chance:0.04 }; +elements.plague.reactions.eye = { elem2: ["infection","rotten_meat","steam","salt","rotten_meat","steam","salt","meat","rotten_meat","plague","flesh"], chance:0.04 }; +elements.plague.reactions.sphincter = { elem2: ["infection","rotten_meat","steam","poop","meat","rotten_meat","plague","flesh"], chance:0.04 }; +elements.plague.reactions.intestines = { elem2: ["infection","rotten_meat","steam","meat","rotten_meat","plague","flesh","rotten_meat","steam","meat","rotten_meat","plague","flesh","poop"], chance:0.04 }; +elements.plague.reactions.stomach_valve = { elem2: ["infection","rotten_meat","steam","meat","rotten_meat","plague","flesh"], chance:0.04 }; +elements.plague.reactions.stomach_lining = { elem2: ["infection","rotten_meat","steam","meat","rotten_meat","plague","flesh"], chance:0.04 }; +elements.plague.reactions.decomposer_stomach = { elem2: ["infection","rotten_meat","steam","meat","rotten_meat","plague","flesh"], chance:0.04 }; +elements.plague.reactions.herbi_stomach = { elem2: ["infection","rotten_meat","steam","meat","rotten_meat","plague","flesh"], chance:0.04 }; +elements.plague.reactions.carni_stomach = { elem2: ["infection","rotten_meat","steam","meat","rotten_meat","plague","flesh"], chance:0.04 }; +elements.plague.reactions.explosive_stomach = { elem2: ["infection","plague","steam","meat","rotten_meat","plague","flesh","pop"], chance:0.03 }; +elements.plague.reactions.throat_lining = { elem2: ["infection","rotten_meat","slime","meat","rotten_meat","plague","flesh"], chance:0.04 }; +elements.plague.reactions.biotorch = { elem2: ["infection","ash","steam","cooked_meat","rotten_meat","plague","plague","fire"], chance:0.04 }; +elements.plague.reactions.biosensor = { elem2: ["infection","blood","fat","meat","rotten_meat","plague"], chance:0.04 }; +elements.plague.reactions.valve = { elem2: ["infection","infection","fat","meat","rotten_meat","plague"], chance:0.04 }; +elements.plague.reactions.valve_extension = { elem2: ["infection","infection","plague","meat","rotten_meat","plague"], chance:0.04 }; if (!elements.infection.reactions) { elements.infection.reactions = {} } -elements.infection.reactions.blood_vessel = { "elem2": ["infection","infected_vessel","infected_vessel","infected_vessel","infected_vessel","infected_vessel","infected_vessel","infected_vessel"], chance:0.1 }; -elements.infection.reactions.heart = { "elem2": ["infection","infected_vessel","infection","infection","infection","infection","infected_vessel","infected_vessel"], chance:0.02 }; +elements.infection.reactions.blood_vessel = { elem2: ["infection","infected_vessel","infected_vessel","infected_vessel","infected_vessel","infected_vessel","infected_vessel","infected_vessel"], chance:0.1 }; +elements.infection.reactions.heart = { elem2: ["infection","infected_vessel","infection","infection","infection","infection","infected_vessel","infected_vessel"], chance:0.02 }; if (!elements.fly.reactions) { elements.infection.reactions = {} } elements.fly.reactions.poop = { elem2:[null,null,"stench"], chance:0.15, func:behaviors.FEEDPIXEL }; @@ -13089,8 +6918,45 @@ elements.bless.tool = function(pixel) { } } -elements.dna.reactions.juice = { "elem1": null, "elem2": "elixir", chance:0.01 }; +elements.dna.reactions.juice = { elem1: null, elem2: "elixir", chance:0.01 }; elements.acid.ignore = ["herbi_stomach","carni_stomach","decomposer_stomach","amphib_skin","amphib_dermis","acidic_flesh","acid_vessel","explosive_stomach","stomach_valve","stomach_lining","throat_lining","glass","rad_glass","glass_shard","rad_shard","stained_glass","baked_clay","acid_gas","neutral_acid","acid_cloud","water","salt_water","sugar_water","dirty_water","copper","gold","porcelain","plastic","bead","microplastic","molten_plastic","pool_water","chlorine","hydrogen","gold_coin","silver","nickel","calcium","bone","earthquake","tornado","tsunami","liquid_light","sensor"] elements.dirty_water.isWaste = true; +elements.salt_water.isWaste = true; +elements.dirty_water.isWaste = true; + +elements.acid.isAcid = true; + +elements.glass_shard.reactions.intestines = { elem2: ["blood","blood","meat"], chance:0.001 }; +elements.glass_shard.reactions.lungs = { elem2: ["blood","blood","meat"], chance:0.001 }; +elements.glass_shard.reactions.simple_lung = { elem2:["blood","blood","meat"], chance:0.001 }; +elements.glass_shard.reactions.flesh = { elem2: ["blood","meat","meat"], chance:0.0005 }; +elements.glass_shard.reactions.blood_vessel = { elem2: ["meat","infected_vessel","blood","blood","blood","blood","blood"], chance:0.001 }; +elements.glass_shard.reactions.epidermis = { elem2: ["dust","blood","blood","blood","blood","blood"], chance:0.0001 }; +elements.glass_shard.reactions.dermis = { elem2: ["dust","blood","blood","blood","blood","blood"], chance:0.0001 }; + +elements.rad_shard.reactions.intestines = { elem2: ["blood","blood","meat"], chance:0.001 }; +elements.rad_shard.reactions.lungs = { elem2: ["blood","blood","meat"], chance:0.001 }; +elements.rad_shard.reactions.simple_lung = { elem2:["blood","blood","meat"], chance:0.001 }; +elements.rad_shard.reactions.flesh = { elem2: ["blood","meat","meat"], chance:0.0005 }; +elements.rad_shard.reactions.blood_vessel = { elem2: ["meat","infected_vessel","blood","blood","blood","blood","blood"], chance:0.001 }; +elements.rad_shard.reactions.epidermis = { elem2: ["dust","blood","blood","blood","blood","blood"], chance:0.0001 }; +elements.rad_shard.reactions.dermis = { elem2: ["dust","blood","blood","blood","blood","blood"], chance:0.0001 }; + +elements.porcelain_shard.reactions.intestines = { elem2: ["blood","blood","meat"], chance:0.0005 }; +elements.porcelain_shard.reactions.lungs = { elem2: ["blood","blood","meat"], chance:0.0005 }; +elements.porcelain_shard.reactions.simple_lung = { elem2:["blood","blood","meat"], chance:0.0005 }; +elements.porcelain_shard.reactions.flesh = { elem2: ["blood","meat","meat"], chance:0.0001 }; +elements.porcelain_shard.reactions.blood_vessel = { elem2: ["meat","infected_vessel","blood","blood","blood","blood","blood"], chance:0.0005 }; +elements.porcelain_shard.reactions.epidermis = { elem2: ["dust","blood","blood","blood","blood","blood"], chance:0.00005 }; +elements.porcelain_shard.reactions.dermis = { elem2: ["dust","blood","blood","blood","blood","blood"], chance:0.00005 }; + +elements.metal_scrap.reactions.intestines = { elem2: ["blood","meat"], chance:0.0005 }; +elements.metal_scrap.reactions.lungs = { elem2: ["blood","meat"], chance:0.0005 }; +elements.metal_scrap.reactions.simple_lung = { elem2:["blood","meat"], chance:0.0005 }; +elements.metal_scrap.reactions.flesh = { elem2: ["blood","meat","meat"], chance:0.0001 }; +elements.metal_scrap.reactions.blood_vessel = { elem2: ["meat","infected_vessel","blood","blood","blood","blood"], chance:0.0005 }; + +elements.vaccine.reactions.infected_vessel = { elem1: null, elem2: "blood_vessel", attr2:{"immune": true}, chance:0.02 }; +elements.antidote.reactions.infected_vessel = { elem1: null, elem2: "blood_vessel", attr2:{"immune": true}, chance:0.02 };