diff --git a/mods/biology.js b/mods/biology.js index 077b920c..7adf05b4 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) @@ -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)) { @@ -116,121 +126,657 @@ 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 = []; + } + } + } + } + } + } + }, + +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) || (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 (!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 - } - } - } + doBioNorm(pixel); doDefaults(pixel); }, density: 2710, @@ -252,8 +798,12 @@ elements.flesh = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -261,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 }, @@ -284,111 +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) || (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 (!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", @@ -410,8 +864,12 @@ elements.epidermis = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -419,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 }, @@ -438,113 +903,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)) { - 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 (!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 - } - } - } + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -566,8 +925,12 @@ elements.dermis = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -575,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 }, @@ -599,142 +969,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)) { - 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 (!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 (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 (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 (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 (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", @@ -756,8 +991,12 @@ elements.cloak_skin = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -765,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 }, @@ -784,145 +1030,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)) { - 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 (!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 (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 (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 (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 (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", @@ -944,8 +1052,12 @@ elements.cloak_dermis = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -961,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 } @@ -1198,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 }, @@ -1243,110 +1361,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)) { - 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 (!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 - } - } - } + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -1368,9 +1383,13 @@ elements.hairy_skin = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, isHair: true, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -1378,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 }, @@ -1406,113 +1432,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)) { - 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 (!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 - } - } - } + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -1534,9 +1454,13 @@ elements.hair_dermis = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, isHair: true, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -1544,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 }, @@ -1552,113 +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 (!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 - } - } - } + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -1677,8 +1500,12 @@ elements.scales = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -1686,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 }, @@ -1705,113 +1539,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)) { - 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 (!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 - } - } - } + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -1833,8 +1561,12 @@ elements.scale_dermis = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -1842,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 }, @@ -1861,113 +1600,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)) { - 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 (!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 - } - } - } + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -1989,8 +1622,12 @@ elements.bug_dermis = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -1998,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 }, @@ -2017,113 +1661,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)) { - 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 (!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 - } - } - } + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -2145,8 +1683,12 @@ elements.amphib_dermis = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -2154,123 +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) || (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 (!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 - } - } - } + doBioNorm(pixel); + doDefaults(pixel); }, density: 2710, state: "solid", @@ -2291,8 +1729,12 @@ elements.acidic_flesh = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -2300,123 +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) || (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 (!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 - } - } - } + doBioNorm(pixel); + doDefaults(pixel); }, density: 2710, state: "solid", @@ -2437,8 +1775,12 @@ elements.slimey_flesh = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -2447,70 +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) || (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 - } + 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 (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 } @@ -2518,24 +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 (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 } @@ -2543,24 +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 (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 } @@ -2568,24 +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 (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 } @@ -2612,8 +1855,12 @@ elements.cloak_flesh = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -2621,116 +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 (!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 (!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 (!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 (!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 - } - } - } + doDefaults(pixel); + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -2752,6 +1902,7 @@ elements.adipose = { nutrition: 1005, }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -2762,132 +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 (!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.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - } - } - 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.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - } - } - 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.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - } - } - 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.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - } - } - 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) } @@ -2899,6 +1956,9 @@ 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"], @@ -2914,6 +1974,7 @@ elements.acid_vessel = { conduct: .001, movable: false, isBio: true, + renderer: renderPresets.FLESHBURN, } elements.heart = { @@ -2923,67 +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) || (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 - } + 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 (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) { @@ -2995,22 +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 (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) { @@ -3022,22 +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 (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) { @@ -3049,22 +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 (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) { @@ -3079,6 +2053,9 @@ elements.heart = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, tempHigh: 175, stateHigh: "meat", @@ -3094,81 +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) || (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 - } + 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.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) { @@ -3179,27 +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.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) { @@ -3210,27 +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.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) { @@ -3241,27 +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.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) { @@ -3275,13 +2146,22 @@ 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)); } + 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", @@ -3302,130 +2182,29 @@ 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) || (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 - } + 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 (!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 (!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 (!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 - } - } - } }, properties: { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, tempHigh: 175, stateHigh: "meat", @@ -3441,6 +2220,7 @@ elements.liver = { conduct: .001, movable: false, isBio: true, + renderer: renderPresets.FLESHBURN, } elements.blood_vessel = { @@ -3450,212 +2230,68 @@ 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 (!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 (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 (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 (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, nutrition: 1000, + speed: 0, + poisoned: false, + 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, - 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, conduct: .001, movable: false, + extinguish: true, isBio: true, + renderer: renderPresets.FLESHBURN, isBlood: true, } @@ -3666,216 +2302,24 @@ 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 (!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) { - changePixel(hitPixel,"infected_vessel") - } - } - 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) { - changePixel(hitPixel,"infected_vessel") - } - } - 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) { - changePixel(hitPixel,"infected_vessel") - } - } - 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) { - changePixel(hitPixel,"infected_vessel") - } - } - 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, nutrition: 1000, + speed: 0, + poisoned: false, + immune: false, + heartAttached: false, }, reactions: { @@ -3894,7 +2338,9 @@ elements.infected_vessel = { density: 1250, conduct: .001, movable: false, + extinguish: true, isBio: true, + renderer: renderPresets.FLESHBURN, isBlood: true, } @@ -3902,145 +2348,56 @@ 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", ], + 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 - } + doBioBlood(pixel); if (Math.random() > 0.995 && Math.random() < (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050)) || Math.random() > 0.9995) { - changePixel(pixel,"blood_vessel"); + 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.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (elements[hitPixel.element].isBlood === true && Math.random() > 0.25) { - if (elements[hitPixel.element].id === elements.infected_vessel.id) { - changePixel(hitPixel,"blood_vessel") - } - } - 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.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (elements[hitPixel.element].isBlood === true && Math.random() > 0.25) { - if (elements[hitPixel.element].id === elements.infected_vessel.id) { - changePixel(hitPixel,"blood_vessel") - } - } - 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.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (elements[hitPixel.element].isBlood === true && Math.random() > 0.25) { - if (elements[hitPixel.element].id === elements.infected_vessel.id) { - changePixel(hitPixel,"blood_vessel") - } - } - 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.speed < pixel.speed) { - hitPixel.speed += 1 - pixel.speed -= 1 - } - if (elements[hitPixel.element].isBlood === true && Math.random() > 0.25) { - if (elements[hitPixel.element].id === elements.infected_vessel.id) { - changePixel(hitPixel,"blood_vessel") - } - } - 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 } } } @@ -4048,6 +2405,10 @@ elements.white_blood_cell = { properties: { oxygen: 1000, nutrition: 1000, + speed: 0, + poisoned: false, + immune: false, + heartAttached: false, }, reactions: { @@ -4069,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 }, @@ -4083,27 +2451,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)) { - 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 - } + doBioNorm(pixel); if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] doElectricity(hitPixel); @@ -4119,20 +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 (!isEmpty(pixel.x, pixel.y+1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y+1] @@ -4149,20 +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 (!isEmpty(pixel.x-1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x-1][pixel.y] @@ -4179,20 +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 (!isEmpty(pixel.x+1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x+1][pixel.y] @@ -4209,20 +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 (pixel.saw === true && Math.random() > 0.8) { pixel.saw = false @@ -4250,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 }, @@ -4263,27 +2561,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)) { - 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 - } + doBioNorm(pixel); if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] doElectricity(hitPixel); @@ -4306,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] @@ -4339,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] @@ -4372,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] @@ -4405,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 @@ -4442,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 }, @@ -4455,64 +2699,34 @@ 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)) { - 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 - } + 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)) { @@ -4521,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)) { @@ -4560,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)) { @@ -4599,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, @@ -4658,58 +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) || (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 - } + doDefaults(pixel); + doBioNorm(pixel); if (!isEmpty(pixel.x, pixel.y-1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y-1] doElectricity(hitPixel); @@ -4717,20 +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 (!isEmpty(pixel.x, pixel.y+1, true)) { var hitPixel = pixelMap[pixel.x][pixel.y+1] @@ -4739,20 +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 (!isEmpty(pixel.x-1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x-1][pixel.y] @@ -4761,20 +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 (!isEmpty(pixel.x+1, pixel.y, true)) { var hitPixel = pixelMap[pixel.x+1][pixel.y] @@ -4783,20 +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 (pixel.charge) { pixel.charge = 0; @@ -4823,8 +2919,12 @@ elements.brain = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -4833,120 +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 (!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 - } - } - } + doDefaults(pixel); + doBioNorm(pixel); if (pixel.temp > 25) { pixel.temp -= 10; } else if (pixel.temp < 15) { pixel.temp += 10; } if (pixel.charge) { @@ -4974,8 +2973,12 @@ elements.amygdala = { // please please please ignore that i callled it the amygd oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -4983,118 +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) || (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 (!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 - } - } - } + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -5116,8 +3020,12 @@ elements.nerve = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -5129,117 +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) || (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 - } - } - } + doDefaults(pixel); + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -5261,8 +3071,11 @@ elements.throat_lining = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -5270,49 +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) || (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 - } + 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) { @@ -5326,6 +3109,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,20 +3123,13 @@ elements.intestines = { hitPixel.nutrition = 0; pixel.speed += hitPixel.speed; hitPixel.speed = 0; - } - 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 && 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)) { @@ -5362,6 +3145,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,20 +3159,13 @@ elements.intestines = { hitPixel.nutrition = 0; pixel.speed += hitPixel.speed; hitPixel.speed = 0; - } - 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 && 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)) { @@ -5398,25 +3181,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; - } - 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 && 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)) { @@ -5432,6 +3215,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,20 +3229,13 @@ elements.intestines = { hitPixel.nutrition = 0; pixel.speed += hitPixel.speed; hitPixel.speed = 0; - } - 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 && Math.random() > 0.9) { + pixel.poisoned = true + }; + if (hitPixel.immune === true && Math.random() > 0.5) { + pixel.poisoned = false + pixel.immune = true + }; } } }, @@ -5476,164 +3259,179 @@ elements.intestines = { oxygen: 1000, nutrition: 1000, 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) || (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 (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 - } + 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 - } + 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 - } + 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 - } + 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 + }; } } }, @@ -5657,15 +3455,26 @@ elements.appendix = { oxygen: 1000, nutrition: 1000, 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 }, @@ -5676,136 +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) || (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 - } + } + } + 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 - } - } - 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 - } - } - 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 - } - } - 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 - } - } - 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 } } }, @@ -5829,172 +3546,90 @@ elements.simple_lung = { oxygen: 1000, nutrition: 1000, 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) || (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 - } + 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 - } - } 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 - } - } 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 - } - } 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 - } - } 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 } } }, @@ -6018,9 +3653,13 @@ elements.lungs = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, movable: false, - isBio: true + isBio: true, + renderer: renderPresets.FLESHBURN, } elements.amphib_skin = { @@ -6031,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 }, @@ -6057,159 +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 - } + 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 - } - } 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 - } - } 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 - } - } 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 - } - } 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 } } }, @@ -6230,8 +3782,12 @@ elements.amphib_skin = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, burn:5, burnTime: 100, @@ -6242,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 }, @@ -6250,159 +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 - } + 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 - } - } 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 - } - } 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 - } - } 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 - } - } 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 } } }, @@ -6423,8 +3890,12 @@ elements.exoskeleton = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, burn:5, burnTime: 100, @@ -6434,66 +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) || (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 - } + 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 - } - } - 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]) @@ -6523,40 +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 (!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 - } - } - 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); } @@ -6580,23 +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 - } - } - } }, density: 2710, state: "solid", @@ -6618,74 +3997,34 @@ elements.gills = { oxygen: 1000, nutrition: 1000, 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) || (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 - } + 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 - } - } - 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]) @@ -6693,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]) @@ -6701,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]) @@ -6709,40 +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 (!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 - } - } - 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); } @@ -6760,23 +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 - } - } - } }, density: 2710, state: "solid", @@ -6798,9 +4089,13 @@ elements.simple_gill = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, movable: false, - isBio: true + isBio: true, + renderer: renderPresets.FLESHBURN, } elements.stomach_lining = { @@ -6811,117 +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) || (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 (!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 - } - } - } + doDefaults(pixel); + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -6943,9 +4140,13 @@ elements.stomach_lining = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, movable: false, - isBio: true + isBio: true, + renderer: renderPresets.FLESHBURN, } elements.decomposer_stomach = { @@ -6956,117 +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) || (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 (!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 - } - } - } + doDefaults(pixel); + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -7088,9 +4191,13 @@ elements.decomposer_stomach = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, movable: false, - isBio: true + isBio: true, + renderer: renderPresets.FLESHBURN, } elements.herbi_stomach = { @@ -7101,117 +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) || (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 (!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 - } - } - } + doDefaults(pixel); + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -7233,9 +4242,13 @@ elements.herbi_stomach = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, movable: false, - isBio: true + isBio: true, + renderer: renderPresets.FLESHBURN, } elements.carni_stomach = { @@ -7246,118 +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) || (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 (!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 - } - } - } doDefaults(pixel); + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -7379,9 +4293,13 @@ elements.carni_stomach = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, movable: false, - isBio: true + isBio: true, + renderer: renderPresets.FLESHBURN, } elements.explosive_stomach = { @@ -7392,118 +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) || (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 (!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 - } - } - } doDefaults(pixel); + doBioNorm(pixel); }, density: 2710, state: "solid", @@ -7525,136 +4344,40 @@ elements.explosive_stomach = { oxygen: 1000, nutrition: 1000, 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) || (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 - } + 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 - } - } - 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 (!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 - } - } - } - doDefaults(pixel); }, density: 2710, state: "solid", @@ -7676,74 +4399,34 @@ elements.stomach_valve = { oxygen: 1000, nutrition: 1000, 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) || (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 - } + 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 - } - } - 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"); } @@ -7752,58 +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 (!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 - } - } - } - doDefaults(pixel); }, density: 2710, state: "solid", @@ -7825,9 +4456,13 @@ elements.sphincter = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, movable: false, - isBio: true + isBio: true, + renderer: renderPresets.FLESHBURN, } elements.real_udder = { @@ -7837,63 +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) || (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 (!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 @@ -7901,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 @@ -7922,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 @@ -7943,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 @@ -7964,12 +4517,14 @@ elements.real_udder = { createPixel("milk",pixel.x+1,pixel.y) } } - doDefaults(pixel); }, properties: { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, tempHigh: 175, stateHigh: "meat", @@ -7985,6 +4540,7 @@ elements.real_udder = { conduct: .001, movable: false, isBio: true, + renderer: renderPresets.FLESHBURN, } elements.biotorch = { @@ -7994,59 +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) || (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 - } + 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.temp > pixel.temp) { + hitPixel.temp-- + pixel.temp++ } } } @@ -8058,16 +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 (elements[hitPixel.element].isBio != true && Math.random() > 0.5) { if (hitPixel.temp < pixel.temp) { hitPixel.temp++ @@ -8089,16 +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 (elements[hitPixel.element].isBio != true && Math.random() > 0.5) { if (hitPixel.temp < pixel.temp) { hitPixel.temp++ @@ -8120,16 +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 (elements[hitPixel.element].isBio != true && Math.random() > 0.5) { if (hitPixel.temp < pixel.temp) { hitPixel.temp++ @@ -8155,6 +4651,8 @@ elements.biotorch = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, }, tempHigh: 750, stateHigh: "cooked_meat", @@ -8179,7 +4677,7 @@ elements.digested_material = { ], properties: { nutrition: 100, - speed: 0, + speed: 0, }, category: "nutrition", state: "solid", @@ -8324,9 +4822,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: { @@ -8373,12 +4871,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 }, @@ -8427,15 +4928,16 @@ elements.stomach_acid = { burnTime: 1, state: "liquid", density: 1050, - stain: -0.1 + stain: -0.1, + isAcid: true, } 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: { @@ -8487,12 +4989,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 }, @@ -8541,15 +5046,16 @@ elements.herbi_acid = { burnTime: 1, state: "liquid", density: 1050, - stain: -0.1 + stain: -0.1, + isAcid: true, } 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: { @@ -8602,12 +5108,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 }, @@ -8655,15 +5164,16 @@ elements.carni_acid = { burnTime: 1, state: "liquid", density: 1050, - stain: -0.1 + stain: -0.1, + isAcid: true, } 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: { @@ -8712,10 +5222,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 }, @@ -8767,14 +5280,15 @@ elements.explosive_acid = { tempLow: -58.88, state: "liquid", density: 1050, + isAcid: true, } 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: { @@ -8820,12 +5334,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 }, @@ -8875,7 +5392,8 @@ elements.decomposer_acid = { burnTime: 1, state: "liquid", density: 1050, - stain: -0.1 + stain: -0.1, + isAcid: true, } elements.deoxygenated_water = { @@ -8941,102 +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) || (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 (!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 - } - } - } + doBioBone(pixel); + doDefaults(pixel); }, category:"structural", tempHigh: 260, @@ -9050,8 +5483,10 @@ elements.real_bone = { oxygen: 1000, nutrition: 1000, speed: 0, + 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, @@ -9063,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 }, @@ -9077,131 +5519,41 @@ elements.real_bone_marrow = { } } } + doBioNorm(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)) { - 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 (!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 (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"); - } + 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 (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"); - } + 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 (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"); - } + 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 (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"); - } + 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; } } } @@ -9227,143 +5579,30 @@ elements.real_bone_marrow = { oxygen: 1000, nutrition: 1000, 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) || (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 (!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 - } - } - } + doBioBone(pixel); + doDefaults(pixel); }, category:"structural", tempHigh: 200, @@ -9377,10 +5616,14 @@ elements.cartilage = { oxygen: 1000, nutrition: 1000, 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"], @@ -9399,12 +5642,22 @@ elements.cerebrospinal_fluid = { 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 += 10 - pixel.oxygen -= 10 + hitPixel.oxygen += 15 + pixel.oxygen -= 15 } if (hitPixel.nutrition < pixel.nutrition) { hitPixel.nutrition += 10 @@ -9414,14 +5667,27 @@ 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 (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 @@ -9431,14 +5697,27 @@ 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 (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 @@ -9448,14 +5727,27 @@ 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 (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 @@ -9465,6 +5757,19 @@ 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 (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 + } } } }, @@ -9519,9 +5824,13 @@ elements.cerebrospinal_fluid = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, extinguish: true, - isBio: true + isBio: true, + renderer: renderPresets.FLESHBURN, } elements.urine = { @@ -9533,6 +5842,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 +5943,16 @@ 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 ((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) { @@ -9718,6 +6038,9 @@ elements.brain_jar_juice = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, extinguish: true } @@ -9782,117 +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) || (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 (!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 - } - } - } + doBioNorm(pixel); + doDefaults(pixel); if (!pixel.stage && pixelTicks-pixel.start > 60) { for (var i = 0; i < squareCoords.length; i++) { var coord = squareCoords[i]; @@ -9999,7 +6224,6 @@ elements.tract = { } } } - doDefaults(pixel); }, category: "structural", movable: false, @@ -10024,14 +6248,25 @@ elements.tract = { oxygen: 1000, nutrition: 1000, 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 }, @@ -10048,113 +6283,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)) { - 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 (!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 - } - } - } + doBioNorm(pixel); doDefaults(pixel); }, ignore: ["flash"], @@ -10177,8 +6306,12 @@ elements.biosensor = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -10186,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 }, @@ -10214,113 +6354,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)) { - 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 (!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 - } - } - } + doBioNorm(pixel); doDefaults(pixel); }, ignore: ["flash"], @@ -10343,8 +6377,12 @@ elements.bioplate = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -10357,118 +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) || (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 (!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 - } - } - } - doDefaults(pixel) + doBioNorm(pixel); + doDefaults(pixel); if (pixel.clone) { return } for (var i = 0; i < adjacentCoords.length; i++) { var coords = adjacentCoords[i]; @@ -10505,8 +6444,12 @@ elements.biocloner = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -10519,49 +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) || (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 - } + doBioNorm(pixel); + doDefaults(pixel); if (pixel.charge || !pixel.open) { pixel.openAge = 0 pixel.open = true @@ -10581,75 +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 (!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 - } - } - } - doDefaults(pixel); }, density: 2710, state: "solid", @@ -10670,8 +6514,12 @@ elements.valve = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, } @@ -10680,117 +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) || (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 (!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 - } - } - } + doBioNorm(pixel); doDefaults(pixel); }, density: 2710, @@ -10811,8 +6560,12 @@ elements.valve_extension = { oxygen: 1000, nutrition: 1000, speed: 0, + poisoned: false, + immune: false, + }, isBio: true, + renderer: renderPresets.FLESHBURN, movable: false, hidden: true, } @@ -10839,7 +6592,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) { @@ -10918,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 }; @@ -11165,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 };