2024-11-27 11:44:05 -05:00
// by Nekonico
2024-11-26 14:30:30 -05:00
viewInfo [ 4 ] = { // Nutrition View
name : "nutr" ,
pixel : function ( pixel , ctx ) {
if ( elements [ pixel . element ] . isBio === true ) {
var nutrition = pixel . nutrition ;
if ( nutrition < 0 ) { nutrition = 0 }
if ( nutrition > 6000 ) { nutrition = 6000 }
var hue = Math . round ( 225 - ( Math . log ( nutrition ) / Math . log ( 6000 ) ) * 225 ) ;
if ( hue < 0 ) { hue = 0 }
if ( hue > 225 ) { hue = 225 }
drawSquare ( ctx , "hsl(" + hue + ",100%,50%)" , pixel . x , pixel . y )
}
}
}
2024-12-12 15:47:06 -05:00
viewInfo [ 5 ] = { // Oxygen View
2024-11-26 14:30:30 -05:00
name : "oxy" ,
pixel : function ( pixel , ctx ) {
if ( elements [ pixel . element ] . isBio === true ) {
2024-11-26 22:47:36 -05:00
var oxygen = pixel . oxygen ;
if ( oxygen < 0 ) { oxygen = 0 }
if ( oxygen > 6000 ) { oxygen = 6000 }
var hue = Math . round ( 225 - ( Math . log ( oxygen ) / Math . log ( 6000 ) ) * 225 ) ;
if ( hue < 0 ) { hue = 0 }
if ( hue > 225 ) { hue = 225 }
drawSquare ( ctx , "hsl(" + hue + ",100%,50%)" , pixel . x , pixel . y )
2024-11-26 14:30:30 -05:00
}
}
}
2024-12-12 15:47:06 -05:00
viewInfo [ 6 ] = { // Speed View
name : "spd" ,
pixel : function ( pixel , ctx ) {
if ( elements [ pixel . element ] . isBio === true ) {
var speed = pixel . speed ;
if ( speed < - 50 ) { speed = - 50 }
if ( speed > 150 ) { speed = 150 }
var hue = Math . round ( 225 - ( Math . log ( speed + 50 ) / Math . log ( 100 + 50 ) ) * 225 ) ;
if ( hue < 0 ) { hue = 0 }
if ( hue > 225 ) { hue = 225 }
drawSquare ( ctx , "hsl(" + hue + ",100%,50%)" , pixel . x , pixel . y )
}
}
}
2024-12-27 23:49:11 -05:00
viewInfo [ 7 ] = { // Illness View
name : "ill" ,
pixel : function ( pixel , ctx ) {
2025-01-12 21:16:03 -05:00
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 ) ) ) {
2024-12-27 23:49:11 -05:00
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 )
// if (isEmpty(pixel.x+1,pixel.y) || isEmpty(pixel.x-1,pixel.y) || isEmpty(pixel.x,pixel.y+1) || isEmpty(pixel.x,pixel.y-1)) {}
}
else {
drawSquare ( ctx , pixel . color , pixel . x , pixel . y , undefined , a )
}
if ( pixel . charge && view !== 2 ) { // Yellow glow on charge
if ( ! elements [ pixel . element ] . colorOn ) {
drawSquare ( ctx , "rgba(255,255,0,0.5)" , pixel . x , pixel . y ) ;
}
}
}
}
}
2025-01-18 19:19:52 -05:00
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 ) ) ;
} ,
2024-12-28 22:34:32 -05:00
behaviorRules . BCF = function ( ) {
if ( btemp . pixel . clone ) {
if ( isEmpty ( btemp . newCoords . x , btemp . newCoords . y ) ) {
createPixel ( btemp . pixel . clone , btemp . newCoords . x , btemp . newCoords . y )
2025-01-02 22:06:28 -05:00
btemp . pixel . nutrition = ( btemp . pixel . nutrition - 10 )
btemp . pixel . oxygen = ( btemp . pixel . oxygen - 1 )
2024-12-28 22:34:32 -05:00
if ( pixelMap [ btemp . newCoords . x ] [ btemp . newCoords . y ] ) {
pixelMap [ btemp . newCoords . x ] [ btemp . newCoords . y ] . temp = btemp . pixel . temp ;
pixelTempCheck ( pixelMap [ btemp . newCoords . x ] [ btemp . newCoords . y ] ) ;
}
}
}
else {
if ( ! isEmpty ( btemp . newCoords . x , btemp . newCoords . y , true ) ) {
var newPixel = pixelMap [ btemp . newCoords . x ] [ btemp . newCoords . y ] ;
if ( ! btemp . pixel . clone && btemp . info . ignore && btemp . info . ignore . indexOf ( newPixel . element ) !== - 1 ) {
return ;
}
if ( newPixel . element !== btemp . pixel . element ) {
btemp . pixel . clone = newPixel . element ;
btemp . pixel . temp = newPixel . temp ;
}
else if ( newPixel . clone ) {
btemp . pixel . clone = newPixel . clone ;
btemp . pixel . temp = newPixel . temp ;
}
}
}
2025-01-02 22:06:28 -05:00
}
behaviorRules . BCR = function ( ) {
if ( isEmpty ( btemp . newCoords . x , btemp . newCoords . y ) ) {
if ( btemp . arg == null ) {
btemp . arg = btemp . pixel . element ;
}
else if ( btemp . arg . indexOf ( "," ) !== - 1 ) {
btemp . arg = choose ( btemp . arg . split ( "," ) ) ;
}
if ( elements [ btemp . arg ] ) {
createPixel ( btemp . arg , btemp . newCoords . x , btemp . newCoords . y ) ;
btemp . pixel . nutrition = ( btemp . pixel . nutrition - 1 )
if ( btemp . info . fireColor && btemp . arg === "fire" ) {
pixelMap [ btemp . newCoords . x ] [ btemp . newCoords . y ] . color = pixelColorPick ( pixelMap [ btemp . newCoords . x ] [ btemp . newCoords . y ] , btemp . info . fireColor ) ;
}
pixelMap [ btemp . newCoords . x ] [ btemp . newCoords . y ] . temp = btemp . pixel . temp
pixelTempCheck ( pixelMap [ btemp . newCoords . x ] [ btemp . newCoords . y ] ) ;
}
}
}
2024-12-28 22:34:32 -05:00
2025-01-12 21:16:03 -05:00
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 ) {
2025-01-18 23:57:42 -05:00
if ( elements [ newPixel . element ] . hardness < 0.9 || ! elements [ newPixel . element ] . hardness ) {
2025-01-12 21:16:03 -05:00
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 = [ ] ;
}
}
}
}
}
}
} ,
2025-01-18 19:19:52 -05:00
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 ) ;
}
2024-11-27 23:13:34 -05:00
}
2025-01-18 19:19:52 -05:00
else if ( pixel . temp < - 15 ) {
if ( Math . random ( ) < 0.75 ) {
changePixel ( pixel , elements [ pixel . element ] . normDie ) ;
2024-12-26 19:51:40 -05:00
}
2025-01-18 19:19:52 -05:00
else {
changePixel ( pixel , elements [ pixel . element ] . coldDie ) ;
}
}
else {
if ( Math . random ( ) < 0.999 ) {
changePixel ( pixel , elements [ pixel . element ] . normDie ) ;
2024-12-03 19:43:00 -05:00
}
else {
2025-01-18 19:19:52 -05:00
changePixel ( pixel , elements [ pixel . element ] . roomDie ) ;
2024-12-03 19:43:00 -05:00
}
2024-11-27 23:13:34 -05:00
}
}
2025-01-18 19:19:52 -05:00
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 ) ;
}
2024-11-27 23:13:34 -05:00
}
2025-01-18 19:19:52 -05:00
}
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 )
2024-12-12 15:47:06 -05:00
}
2025-01-18 19:19:52 -05:00
if ( hitPixel . nutrition < pixel . nutrition ) {
hitPixel . nutrition += elements [ pixel . element ] . nutrTrans
pixel . nutrition -= elements [ pixel . element ] . nutrTrans
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
if ( hitPixel . speed < pixel . speed ) {
hitPixel . speed += 1
pixel . speed -= 1
2024-11-27 23:13:34 -05:00
}
2025-01-18 19:19:52 -05:00
if ( hitPixel . poisoned != true && pixel . poisoned == true ) {
hitPixel . poisoned = true
2024-11-27 23:13:34 -05:00
}
2025-01-18 19:19:52 -05:00
if ( hitPixel . immune != true && pixel . immune == true ) {
hitPixel . poisoned = false
hitPixel . immune = true
2024-11-27 23:13:34 -05:00
}
2025-01-18 19:19:52 -05:00
if ( hitPixel . burnt > 0 && ( ! pixel . burnt || pixel . burnt < hitPixel . burnt && pixel . burnt < 51 ) && hitPixel . burnt < 56 && Math . random ( ) > 0.8 ) {
hitPixel . burnt --
2024-11-27 23:13:34 -05:00
}
2025-01-18 19:19:52 -05:00
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
}
}
}
2024-11-27 23:13:34 -05:00
}
2025-01-18 19:19:52 -05:00
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 )
2024-11-25 23:09:06 -05:00
}
}
2025-01-18 19:19:52 -05:00
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 )
}
2024-11-25 23:09:06 -05:00
}
2025-01-18 19:19:52 -05:00
if ( hitPixel . speed < pixel . speed ) {
hitPixel . speed += 1
pixel . speed -= 1
2024-11-25 23:09:06 -05:00
}
2025-01-18 19:19:52 -05:00
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 )
2024-12-26 19:51:40 -05:00
}
2025-01-18 19:19:52 -05:00
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 )
2024-12-26 19:51:40 -05:00
}
else {
2025-01-18 19:19:52 -05:00
hitPixel . nutrition += ( elements [ pixel . element ] . nutrTrans )
pixel . nutrition -= ( elements [ pixel . element ] . nutrTrans )
2024-12-26 19:51:40 -05:00
}
2024-11-25 23:09:06 -05:00
}
2025-01-18 19:19:52 -05:00
if ( hitPixel . speed < pixel . speed ) {
hitPixel . speed += 1
pixel . speed -= 1
2024-11-25 23:09:06 -05:00
}
2025-01-18 19:19:52 -05:00
if ( hitPixel . poisoned != true && pixel . poisoned == true ) {
hitPixel . poisoned = true
2024-11-25 23:09:06 -05:00
}
2025-01-18 19:19:52 -05:00
if ( hitPixel . immune != true && pixel . immune == true ) {
hitPixel . poisoned = false
hitPixel . immune = true
2024-12-12 15:47:06 -05:00
}
2025-01-18 19:19:52 -05:00
if ( hitPixel . burnt > 0 && ( ! pixel . burnt || pixel . burnt < hitPixel . burnt && pixel . burnt < 51 ) && hitPixel . burnt < 56 && Math . random ( ) > 0.8 ) {
hitPixel . burnt --
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
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 )
2024-11-25 23:09:06 -05:00
}
}
2025-01-18 19:19:52 -05:00
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 )
2024-11-25 23:09:06 -05:00
}
}
2025-01-18 19:19:52 -05:00
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 )
2024-11-25 23:09:06 -05:00
}
}
2025-01-18 19:19:52 -05:00
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 ) {
doBioNorm ( pixel ) ;
doDefaults ( pixel ) ;
} ,
density : 2710 ,
state : "solid" ,
conduct : . 001 ,
tempHigh : 200 ,
stateHigh : "cooked_meat" ,
tempLow : - 25 ,
stateLow : "frozen_meat" ,
burn : 5 ,
burnTime : 350 ,
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" ] ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "blood" , "fat" , "meat" , "rotten_meat" , "cooked_meat" ] , chance : 0.4 } ,
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
speed : 0 ,
poisoned : false ,
immune : false ,
} ,
isBio : true ,
renderer : renderPresets . FLESHBURN ,
movable : false ,
}
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
} ,
tick : function ( pixel ) {
if ( ( pixel . temp > 35 || pixel . temp < 10 ) && Math . random ( ) < 0.005 ) {
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 ) ) {
if ( pixel . temp > 35 ) {
pixel . temp -= 20 ;
createPixel ( "salt_water" , x , y ) ;
break ;
}
pixel . temp += 20 ;
break ;
2025-01-12 21:16:03 -05:00
}
2024-11-25 23:09:06 -05:00
}
}
2025-01-18 19:19:52 -05:00
if ( pixel . temp < 15 && Math . random ( ) < 0.1 ) {
pixel . temp += 1 ;
}
doBioNorm ( pixel ) ;
doDefaults ( pixel ) ;
2024-11-25 23:09:06 -05:00
} ,
density : 2710 ,
state : "solid" ,
2024-12-26 19:51:40 -05:00
conduct : . 001 ,
2024-11-25 23:09:06 -05:00
tempHigh : 200 ,
stateHigh : "cooked_meat" ,
tempLow : - 25 ,
stateLow : "frozen_meat" ,
2024-12-27 23:49:11 -05:00
burn : 3 ,
2024-12-26 19:51:40 -05:00
burnTime : 350 ,
2024-11-25 23:09:06 -05:00
burnInto : "cooked_meat" ,
2024-12-10 22:23:04 -05:00
breakInto : [ "blood" , "meat" , "dust" , "dust" , "dust" , "dust" ] ,
2024-11-25 23:09:06 -05:00
forceSaveColor : true ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
2024-11-26 11:08:43 -05:00
"radiation" : { elem1 : [ "ash" , "meat" , "rotten_meat" , "cooked_meat" , "flesh" ] , chance : 0.2 } ,
2024-11-25 23:09:06 -05:00
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
2024-12-12 15:47:06 -05:00
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-11-25 23:09:06 -05:00
} ,
isBio : true ,
2025-01-18 19:19:52 -05:00
renderer : renderPresets . FLESHBURN ,
2024-11-25 23:09:06 -05:00
movable : false ,
}
2024-11-26 17:05:21 -05:00
elements . dermis = {
color : "#CFA08B" ,
2024-12-03 19:43:00 -05:00
category : "structural" ,
2024-11-26 17:05:21 -05:00
behavior : behaviors . WALL ,
2025-01-18 19:19:52 -05:00
nutrTrans : 10 ,
oxygTrans : 10 ,
isMultiDie : true ,
normDie : "meat" ,
roomDie : "rotten_meat" ,
coldDie : "frozen_meat" ,
heatDie : "cooked_meat" ,
2024-11-26 17:05:21 -05:00
hoverStat : function ( pixel ) {
2024-12-10 19:53:59 -05:00
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
2024-11-26 17:05:21 -05:00
} ,
tick : function ( pixel ) {
2024-12-12 15:47:06 -05:00
if ( Math . random ( ) > ( 1 - ( ( pixel . nutrition + pixel . oxygen + pixel . speed ) / 2050 ) ) && Math . random ( ) < 0.005 ) {
2024-12-11 17:59:12 -05:00
for ( var i = 0 ; i < squareCoords . length ; i ++ ) {
var coords = squareCoords [ i ] ;
2024-11-26 17:05:21 -05:00
var x = pixel . x + coords [ 0 ] ;
var y = pixel . y + coords [ 1 ] ;
if ( isEmpty ( x , y ) ) {
createPixel ( "epidermis" , x , y ) ;
2025-01-02 22:06:28 -05:00
pixelMap [ x ] [ y ] . nutrition = ( Math . round ( pixel . nutrition / 2 ) )
pixelMap [ x ] [ y ] . oxygen = ( Math . round ( pixel . oxygen / 2 ) )
pixel . nutrition = ( Math . round ( pixel . nutrition / 2 ) )
pixel . oxygen = ( Math . round ( pixel . oxygen / 2 ) )
2024-11-26 17:05:21 -05:00
}
}
}
doDefaults ( pixel ) ;
2025-01-18 19:19:52 -05:00
doBioNorm ( pixel ) ;
2024-12-12 23:32:22 -05:00
} ,
density : 2710 ,
state : "solid" ,
2024-12-26 19:51:40 -05:00
conduct : . 001 ,
2024-12-12 23:32:22 -05:00
tempHigh : 200 ,
stateHigh : "cooked_meat" ,
tempLow : - 25 ,
stateLow : "frozen_meat" ,
2024-12-27 23:49:11 -05:00
burn : 4 ,
2024-12-26 19:51:40 -05:00
burnTime : 350 ,
2024-12-12 23:32:22 -05:00
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" ] ,
forceSaveColor : true ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "meat" , "rotten_meat" , "cooked_meat" , "flesh" ] , chance : 0.2 } ,
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-12-12 23:32:22 -05:00
} ,
isBio : true ,
2025-01-18 19:19:52 -05:00
renderer : renderPresets . FLESHBURN ,
2024-12-12 23:32:22 -05:00
movable : false ,
}
2024-12-27 23:49:11 -05:00
elements . cloak _skin = {
color : "#CFD4A5" ,
2024-12-12 23:32:22 -05:00
category : "structural" ,
behavior : behaviors . WALL ,
2025-01-18 19:19:52 -05:00
nutrTrans : 10 ,
oxygTrans : 10 ,
isMultiDie : true ,
normDie : "dust" ,
roomDie : "meat" ,
coldDie : "dust" ,
heatDie : "cooked_meat" ,
2024-12-27 23:49:11 -05:00
hoverStat : function ( pixel ) {
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
} ,
2024-12-12 23:32:22 -05:00
tick : function ( pixel ) {
2024-12-27 23:49:11 -05:00
if ( ( pixel . temp > 35 || pixel . temp < 10 ) && Math . random ( ) < 0.005 ) {
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 ) ) {
if ( pixel . temp > 35 ) {
pixel . temp -= 20 ;
createPixel ( "salt_water" , x , y ) ;
break ;
}
pixel . temp += 20 ;
break ;
2024-12-26 19:51:40 -05:00
}
}
2024-12-12 23:32:22 -05:00
}
2024-12-27 23:49:11 -05:00
if ( pixel . temp < 15 && Math . random ( ) < 0.1 ) {
pixel . temp += 1 ;
}
doDefaults ( pixel ) ;
2025-01-18 19:19:52 -05:00
doBioNorm ( pixel ) ;
2024-12-12 23:32:22 -05:00
} ,
density : 2710 ,
state : "solid" ,
2024-12-26 19:51:40 -05:00
conduct : . 001 ,
2024-12-27 23:49:11 -05:00
tempHigh : 200 ,
stateHigh : "cooked_meat" ,
2024-12-12 23:32:22 -05:00
tempLow : - 25 ,
2024-12-27 23:49:11 -05:00
stateLow : "frozen_meat" ,
burn : 3 ,
burnTime : 350 ,
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" , "dust" , "dust" , "dust" , "dust" ] ,
2024-12-12 23:32:22 -05:00
forceSaveColor : true ,
reactions : {
2024-12-27 23:49:11 -05:00
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "meat" , "rotten_meat" , "cooked_meat" , "flesh" ] , chance : 0.2 } ,
2024-12-12 23:32:22 -05:00
} ,
2024-12-27 23:49:11 -05:00
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-12-27 23:49:11 -05:00
} ,
isBio : true ,
2025-01-18 19:19:52 -05:00
renderer : renderPresets . FLESHBURN ,
2024-12-12 23:32:22 -05:00
movable : false ,
}
2024-12-27 23:49:11 -05:00
elements . cloak _dermis = {
color : "#BC9F7B" ,
2024-12-12 23:32:22 -05:00
category : "structural" ,
behavior : behaviors . WALL ,
2025-01-18 19:19:52 -05:00
nutrTrans : 10 ,
oxygTrans : 10 ,
isMultiDie : true ,
normDie : "meat" ,
roomDie : "rotten_meat" ,
coldDie : "frozen_meat" ,
heatDie : "cooked_meat" ,
2024-12-27 23:49:11 -05:00
hoverStat : function ( pixel ) {
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
} ,
2024-12-12 23:32:22 -05:00
tick : function ( pixel ) {
2024-12-27 23:49:11 -05:00
if ( Math . random ( ) > ( 1 - ( ( pixel . nutrition + pixel . oxygen + pixel . speed ) / 2050 ) ) && Math . random ( ) < 0.005 ) {
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 ( "cloak_skin" , x , y ) ;
2025-01-02 22:06:28 -05:00
pixelMap [ x ] [ y ] . nutrition = ( Math . round ( pixel . nutrition / 2 ) )
pixelMap [ x ] [ y ] . oxygen = ( Math . round ( pixel . oxygen / 2 ) )
pixel . nutrition = ( Math . round ( pixel . nutrition / 2 ) )
pixel . oxygen = ( Math . round ( pixel . oxygen / 2 ) )
2024-12-12 23:32:22 -05:00
}
}
}
doDefaults ( pixel ) ;
2025-01-18 19:19:52 -05:00
doBioNorm ( pixel ) ;
2024-12-12 23:32:22 -05:00
} ,
density : 2710 ,
state : "solid" ,
2024-12-26 19:51:40 -05:00
conduct : . 001 ,
2024-12-12 23:32:22 -05:00
tempHigh : 200 ,
stateHigh : "cooked_meat" ,
tempLow : - 25 ,
stateLow : "frozen_meat" ,
2024-12-27 23:49:11 -05:00
burn : 4 ,
burnTime : 350 ,
2024-12-12 23:32:22 -05:00
burnInto : "cooked_meat" ,
2024-12-27 23:49:11 -05:00
breakInto : [ "blood" , "meat" ] ,
2024-12-12 23:32:22 -05:00
forceSaveColor : true ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "meat" , "rotten_meat" , "cooked_meat" , "flesh" ] , chance : 0.2 } ,
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-12-12 23:32:22 -05:00
} ,
isBio : true ,
2025-01-18 19:19:52 -05:00
renderer : renderPresets . FLESHBURN ,
2024-12-12 23:32:22 -05:00
movable : false ,
}
2024-12-27 23:49:11 -05:00
elements . loose _hair = {
color : "#79554D" ,
singleColor : true ,
behavior : behaviors . POWDER ,
category : "powders" ,
tempHigh : 223 ,
stateHigh : [ "smoke" , "smoke" , "smoke" , "ash" , "ash" , "stench" ] ,
burn : 20 ,
burnTime : 350 ,
burnInto : [ "smoke" , "smoke" , "fire" , "ash" , "ash" , "stench" ] ,
breakInto : [ null , null , null , null , "dust" ] ,
state : "solid" ,
2025-01-18 19:19:52 -05:00
density : 935 ,
2024-12-27 23:49:11 -05:00
hidden : true
}
elements . hair _end = {
color : "#754a41" ,
2024-12-12 23:32:22 -05:00
category : "structural" ,
behavior : behaviors . WALL ,
tick : function ( pixel ) {
2024-12-27 23:49:11 -05:00
if ( pixel . dir === "up" ) {
if ( isEmpty ( pixel . x , pixel . y + 1 ) ) {
changePixel ( pixel , "loose_hair" ) ;
}
else if ( ! isEmpty ( pixel . x , pixel . y + 1 , true ) ) {
if ( elements [ pixelMap [ pixel . x ] [ pixel . y + 1 ] . element ] . isHair != true ) {
changePixel ( pixel , "loose_hair" ) ;
2024-12-12 23:32:22 -05:00
}
}
}
2024-12-27 23:49:11 -05:00
else if ( pixel . dir === "down" ) {
if ( isEmpty ( pixel . x , pixel . y - 1 ) ) {
changePixel ( pixel , "loose_hair" ) ;
2024-12-26 19:51:40 -05:00
}
2024-12-27 23:49:11 -05:00
else if ( ! isEmpty ( pixel . x , pixel . y - 1 , true ) ) {
if ( elements [ pixelMap [ pixel . x ] [ pixel . y - 1 ] . element ] . isHair != true ) {
changePixel ( pixel , "loose_hair" ) ;
2024-12-26 19:51:40 -05:00
}
2024-12-12 23:32:22 -05:00
}
2024-12-12 15:47:06 -05:00
}
2024-12-27 23:49:11 -05:00
else if ( pixel . dir === "left" ) {
if ( isEmpty ( pixel . x + 1 , pixel . y ) ) {
changePixel ( pixel , "loose_hair" ) ;
2024-11-26 17:05:21 -05:00
}
2024-12-27 23:49:11 -05:00
else if ( ! isEmpty ( pixel . x + 1 , pixel . y , true ) ) {
if ( elements [ pixelMap [ pixel . x + 1 ] [ pixel . y ] . element ] . isHair != true ) {
changePixel ( pixel , "loose_hair" ) ;
2024-12-12 15:47:06 -05:00
}
2024-11-26 17:05:21 -05:00
}
}
2024-12-27 23:49:11 -05:00
else if ( pixel . dir === "right" ) {
if ( isEmpty ( pixel . x - 1 , pixel . y ) ) {
changePixel ( pixel , "loose_hair" ) ;
}
else if ( ! isEmpty ( pixel . x - 1 , pixel . y , true ) ) {
if ( elements [ pixelMap [ pixel . x - 1 ] [ pixel . y ] . element ] . isHair != true ) {
changePixel ( pixel , "loose_hair" ) ;
2024-12-12 15:47:06 -05:00
}
2024-11-26 17:05:21 -05:00
}
}
2024-12-27 23:49:11 -05:00
else if ( ! pixel . dir && pixel . age > 10 ) {
changePixel ( pixel , "loose_hair" ) ;
}
if ( pixel . temp < 5 && Math . random ( ) < 0.01 ) {
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 ) ) {
pixel . temp += 10 ;
break ;
2024-12-12 15:47:06 -05:00
}
2024-11-26 17:05:21 -05:00
}
}
2024-12-27 23:49:11 -05:00
if ( pixel . temp < 10 && Math . random ( ) < 0.1 ) {
pixel . temp += 1 ;
}
doDefaults ( pixel ) ;
pixel . age ++
} ,
properties : {
age : 0 ,
2024-11-26 17:05:21 -05:00
} ,
density : 2710 ,
state : "solid" ,
2024-12-26 19:51:40 -05:00
conduct : . 001 ,
2024-11-26 17:05:21 -05:00
tempLow : - 25 ,
2024-12-27 23:49:11 -05:00
stateLow : "loose_hair" ,
tempHigh : 123 ,
stateHigh : "loose_hair" ,
burn : 15 ,
burnTime : 400 ,
burnInto : "loose_hair" ,
breakInto : "loose_hair" ,
2024-11-26 17:05:21 -05:00
forceSaveColor : true ,
reactions : {
2024-12-27 23:49:11 -05:00
"cancer" : { elem1 : null , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "dust" ] , chance : 0.2 } ,
2024-11-26 17:05:21 -05:00
} ,
2024-12-26 19:51:40 -05:00
isHair : true ,
2024-11-26 17:05:21 -05:00
movable : false ,
2024-12-27 23:49:11 -05:00
hidden : true ,
2024-11-26 17:05:21 -05:00
}
2024-12-27 23:49:11 -05:00
elements . attached _hair = {
color : "#754a41" ,
2024-12-03 19:43:00 -05:00
category : "structural" ,
2024-11-26 12:06:53 -05:00
behavior : behaviors . WALL ,
tick : function ( pixel ) {
2024-12-27 23:49:11 -05:00
if ( Math . random ( ) < 0.005 ) {
if ( pixel . dir === "up" ) {
if ( isEmpty ( pixel . x , pixel . y - 1 ) ) {
if ( Math . random ( ) > 0.2 ) {
createPixel ( "attached_hair" , pixel . x , pixel . y - 1 )
pixelMap [ pixel . x ] [ pixel . y - 1 ] . dir = "up"
}
else {
createPixel ( "hair_end" , pixel . x , pixel . y - 1 )
pixelMap [ pixel . x ] [ pixel . y - 1 ] . dir = "up"
}
2024-12-26 19:51:40 -05:00
}
}
2024-12-27 23:49:11 -05:00
else if ( pixel . dir === "down" ) {
if ( isEmpty ( pixel . x , pixel . y + 1 ) ) {
if ( Math . random ( ) > 0.2 ) {
createPixel ( "attached_hair" , pixel . x , pixel . y + 1 )
pixelMap [ pixel . x ] [ pixel . y + 1 ] . dir = "down"
}
else {
createPixel ( "hair_end" , pixel . x , pixel . y + 1 )
pixelMap [ pixel . x ] [ pixel . y + 1 ] . dir = "down"
}
2024-12-26 19:51:40 -05:00
}
2024-11-26 12:06:53 -05:00
}
2024-12-27 23:49:11 -05:00
else if ( pixel . dir === "left" ) {
if ( isEmpty ( pixel . x - 1 , pixel . y ) ) {
if ( Math . random ( ) > 0.2 ) {
createPixel ( "attached_hair" , pixel . x - 1 , pixel . y )
pixelMap [ pixel . x - 1 ] [ pixel . y ] . dir = "left"
}
else {
createPixel ( "hair_end" , pixel . x - 1 , pixel . y )
pixelMap [ pixel . x - 1 ] [ pixel . y ] . dir = "left"
}
2024-12-26 19:51:40 -05:00
}
2024-12-27 23:49:11 -05:00
}
else if ( pixel . dir === "right" ) {
if ( isEmpty ( pixel . x + 1 , pixel . y ) ) {
if ( Math . random ( ) > 0.2 ) {
createPixel ( "attached_hair" , pixel . x + 1 , pixel . y )
pixelMap [ pixel . x + 1 ] [ pixel . y ] . dir = "right"
}
else {
createPixel ( "hair_end" , pixel . x + 1 , pixel . y )
pixelMap [ pixel . x + 1 ] [ pixel . y ] . dir = "right"
}
2024-12-26 19:51:40 -05:00
}
2024-11-26 12:06:53 -05:00
}
}
2024-12-27 23:49:11 -05:00
if ( pixel . dir === "up" ) {
if ( isEmpty ( pixel . x , pixel . y + 1 ) ) {
changePixel ( pixel , "loose_hair" ) ;
}
else if ( ! isEmpty ( pixel . x , pixel . y + 1 , true ) ) {
if ( elements [ pixelMap [ pixel . x ] [ pixel . y + 1 ] . element ] . isHair != true ) {
changePixel ( pixel , "loose_hair" ) ;
2024-12-12 15:47:06 -05:00
}
2024-11-26 12:06:53 -05:00
}
}
2024-12-27 23:49:11 -05:00
else if ( pixel . dir === "down" ) {
if ( isEmpty ( pixel . x , pixel . y - 1 ) ) {
changePixel ( pixel , "loose_hair" ) ;
}
else if ( ! isEmpty ( pixel . x , pixel . y - 1 , true ) ) {
if ( elements [ pixelMap [ pixel . x ] [ pixel . y - 1 ] . element ] . isHair != true ) {
changePixel ( pixel , "loose_hair" ) ;
2024-12-12 15:47:06 -05:00
}
2024-11-26 12:06:53 -05:00
}
}
2024-12-27 23:49:11 -05:00
else if ( pixel . dir === "left" ) {
if ( isEmpty ( pixel . x + 1 , pixel . y ) ) {
changePixel ( pixel , "loose_hair" ) ;
}
else if ( ! isEmpty ( pixel . x + 1 , pixel . y , true ) ) {
if ( elements [ pixelMap [ pixel . x + 1 ] [ pixel . y ] . element ] . isHair != true ) {
changePixel ( pixel , "loose_hair" ) ;
2024-12-12 15:47:06 -05:00
}
2024-11-26 12:06:53 -05:00
}
}
2024-12-27 23:49:11 -05:00
else if ( pixel . dir === "right" ) {
if ( isEmpty ( pixel . x - 1 , pixel . y ) ) {
changePixel ( pixel , "loose_hair" ) ;
}
else if ( ! isEmpty ( pixel . x - 1 , pixel . y , true ) ) {
if ( elements [ pixelMap [ pixel . x - 1 ] [ pixel . y ] . element ] . isHair != true ) {
changePixel ( pixel , "loose_hair" ) ;
2024-11-26 12:06:53 -05:00
}
2024-12-27 23:49:11 -05:00
}
}
else if ( ! pixel . dir && pixel . age > 10 ) {
changePixel ( pixel , "loose_hair" ) ;
}
if ( pixel . temp < 5 && Math . random ( ) < 0.01 ) {
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 ) ) {
pixel . temp += 10 ;
break ;
2024-12-12 15:47:06 -05:00
}
2024-11-26 12:06:53 -05:00
}
}
2024-12-27 23:49:11 -05:00
if ( pixel . temp < 10 && Math . random ( ) < 0.1 ) {
pixel . temp += 1 ;
}
doDefaults ( pixel ) ;
pixel . age ++
} ,
properties : {
age : 0 ,
2024-11-26 12:06:53 -05:00
} ,
density : 2710 ,
state : "solid" ,
2024-12-26 19:51:40 -05:00
conduct : . 001 ,
2024-11-26 12:06:53 -05:00
tempLow : - 25 ,
2024-12-27 23:49:11 -05:00
stateLow : "loose_hair" ,
tempHigh : 123 ,
stateHigh : "loose_hair" ,
burn : 15 ,
burnTime : 400 ,
burnInto : "loose_hair" ,
breakInto : "loose_hair" ,
2024-11-26 12:06:53 -05:00
forceSaveColor : true ,
reactions : {
2024-12-27 23:49:11 -05:00
"cancer" : { elem1 : null , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "dust" ] , chance : 0.2 } ,
2024-11-26 17:05:21 -05:00
} ,
2024-12-27 23:49:11 -05:00
isHair : true ,
2024-11-26 17:05:21 -05:00
movable : false ,
2024-12-27 23:49:11 -05:00
hidden : true ,
2024-11-26 17:05:21 -05:00
}
2024-12-27 23:49:11 -05:00
elements . hairy _skin = {
color : "#ECDCC3" ,
2024-12-03 19:43:00 -05:00
category : "structural" ,
2024-11-26 17:05:21 -05:00
behavior : behaviors . WALL ,
2025-01-18 19:19:52 -05:00
nutrTrans : 10 ,
oxygTrans : 10 ,
isMultiDie : true ,
normDie : "dust" ,
roomDie : "meat" ,
coldDie : "dust" ,
heatDie : "cooked_meat" ,
2024-11-26 17:05:21 -05:00
hoverStat : function ( pixel ) {
2024-12-10 19:53:59 -05:00
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
2024-11-26 17:05:21 -05:00
} ,
tick : function ( pixel ) {
2024-12-27 23:49:11 -05:00
if ( Math . random ( ) > ( 1 - ( ( pixel . nutrition + pixel . oxygen + pixel . speed ) / 2050 ) ) && Math . random ( ) < 0.01 ) {
if ( isEmpty ( pixel . x , pixel . y - 1 ) ) {
createPixel ( "attached_hair" , pixel . x , pixel . y - 1 )
pixelMap [ pixel . x ] [ pixel . y - 1 ] . dir = "up"
}
if ( isEmpty ( pixel . x , pixel . y + 1 ) ) {
createPixel ( "attached_hair" , pixel . x , pixel . y + 1 )
pixelMap [ pixel . x ] [ pixel . y + 1 ] . dir = "down"
}
if ( isEmpty ( pixel . x - 1 , pixel . y ) ) {
createPixel ( "attached_hair" , pixel . x - 1 , pixel . y )
pixelMap [ pixel . x - 1 ] [ pixel . y ] . dir = "left"
}
if ( isEmpty ( pixel . x + 1 , pixel . y ) ) {
createPixel ( "attached_hair" , pixel . x + 1 , pixel . y )
pixelMap [ pixel . x + 1 ] [ pixel . y ] . dir = "right"
}
}
if ( ( pixel . temp > 35 || pixel . temp < 10 ) && Math . random ( ) < 0.005 ) {
2024-12-11 17:59:12 -05:00
for ( var i = 0 ; i < squareCoords . length ; i ++ ) {
var coords = squareCoords [ i ] ;
2024-11-26 17:05:21 -05:00
var x = pixel . x + coords [ 0 ] ;
var y = pixel . y + coords [ 1 ] ;
if ( isEmpty ( x , y ) ) {
2024-12-27 23:49:11 -05:00
if ( pixel . temp > 35 ) {
pixel . temp -= 20 ;
createPixel ( "salt_water" , x , y ) ;
break ;
}
pixel . temp += 20 ;
break ;
2024-11-26 17:05:21 -05:00
}
}
}
2024-12-27 23:49:11 -05:00
if ( pixel . temp < 15 && Math . random ( ) < 0.1 ) {
pixel . temp += 1 ;
}
2024-11-26 17:05:21 -05:00
doDefaults ( pixel ) ;
2025-01-18 19:19:52 -05:00
doBioNorm ( pixel ) ;
2024-11-26 22:47:36 -05:00
} ,
density : 2710 ,
state : "solid" ,
2024-12-26 19:51:40 -05:00
conduct : . 001 ,
2024-11-26 22:47:36 -05:00
tempHigh : 200 ,
stateHigh : "cooked_meat" ,
tempLow : - 25 ,
stateLow : "frozen_meat" ,
2024-12-26 19:51:40 -05:00
burn : 5 ,
2024-12-27 23:49:11 -05:00
burnTime : 375 ,
2024-11-26 22:47:36 -05:00
burnInto : "cooked_meat" ,
2024-12-27 23:49:11 -05:00
breakInto : [ "blood" , "meat" , "dust" , "dust" , "dust" , "dust" ] ,
2024-11-26 22:47:36 -05:00
forceSaveColor : true ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "meat" , "rotten_meat" , "cooked_meat" , "flesh" ] , chance : 0.2 } ,
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
2024-12-12 15:47:06 -05:00
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-11-26 22:47:36 -05:00
} ,
2024-12-27 23:49:11 -05:00
isHair : true ,
2024-11-26 22:47:36 -05:00
isBio : true ,
2025-01-18 19:19:52 -05:00
renderer : renderPresets . FLESHBURN ,
2024-11-26 22:47:36 -05:00
movable : false ,
}
2024-12-27 23:49:11 -05:00
elements . hair _dermis = {
color : "#C89985" ,
2024-12-03 19:43:00 -05:00
category : "structural" ,
2024-11-26 22:47:36 -05:00
behavior : behaviors . WALL ,
2025-01-18 19:19:52 -05:00
nutrTrans : 10 ,
oxygTrans : 10 ,
isMultiDie : true ,
normDie : "meat" ,
roomDie : "rotten_meat" ,
coldDie : "frozen_meat" ,
heatDie : "cooked_meat" ,
2024-11-26 22:47:36 -05:00
hoverStat : function ( pixel ) {
2024-12-10 19:53:59 -05:00
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
2024-11-26 22:47:36 -05:00
} ,
tick : function ( pixel ) {
2024-12-12 15:47:06 -05:00
if ( Math . random ( ) > ( 1 - ( ( pixel . nutrition + pixel . oxygen + pixel . speed ) / 2050 ) ) && Math . random ( ) < 0.005 ) {
2024-12-11 17:59:12 -05:00
for ( var i = 0 ; i < squareCoords . length ; i ++ ) {
var coords = squareCoords [ i ] ;
2024-11-26 22:47:36 -05:00
var x = pixel . x + coords [ 0 ] ;
var y = pixel . y + coords [ 1 ] ;
if ( isEmpty ( x , y ) ) {
2024-12-27 23:49:11 -05:00
if ( Math . random ( ) > 0.05 ) {
createPixel ( "hairy_skin" , x , y ) ;
2025-01-02 22:06:28 -05:00
pixelMap [ x ] [ y ] . nutrition = ( Math . round ( pixel . nutrition / 2 ) )
pixelMap [ x ] [ y ] . oxygen = ( Math . round ( pixel . oxygen / 2 ) )
pixel . nutrition = ( Math . round ( pixel . nutrition / 2 ) )
pixel . oxygen = ( Math . round ( pixel . oxygen / 2 ) )
2024-12-27 23:49:11 -05:00
}
else {
createPixel ( "epidermis" , x , y ) ;
2025-01-02 22:06:28 -05:00
pixelMap [ x ] [ y ] . nutrition = ( Math . round ( pixel . nutrition / 2 ) )
pixelMap [ x ] [ y ] . oxygen = ( Math . round ( pixel . oxygen / 2 ) )
pixel . nutrition = ( Math . round ( pixel . nutrition / 2 ) )
pixel . oxygen = ( Math . round ( pixel . oxygen / 2 ) )
2024-12-27 23:49:11 -05:00
}
2024-11-26 22:47:36 -05:00
}
}
}
doDefaults ( pixel ) ;
2025-01-18 19:19:52 -05:00
doBioNorm ( pixel ) ;
2024-11-26 17:05:21 -05:00
} ,
density : 2710 ,
state : "solid" ,
2024-12-26 19:51:40 -05:00
conduct : . 001 ,
2024-11-26 17:05:21 -05:00
tempHigh : 200 ,
stateHigh : "cooked_meat" ,
tempLow : - 25 ,
stateLow : "frozen_meat" ,
2024-12-26 19:51:40 -05:00
burn : 5 ,
2024-12-27 23:49:11 -05:00
burnTime : 360 ,
2024-11-26 17:05:21 -05:00
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" ] ,
forceSaveColor : true ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "meat" , "rotten_meat" , "cooked_meat" , "flesh" ] , chance : 0.2 } ,
2024-11-26 12:06:53 -05:00
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
2024-12-12 15:47:06 -05:00
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-11-26 12:06:53 -05:00
} ,
2024-12-27 23:49:11 -05:00
isHair : true ,
2024-11-26 12:06:53 -05:00
isBio : true ,
2025-01-18 19:19:52 -05:00
renderer : renderPresets . FLESHBURN ,
2024-11-26 12:06:53 -05:00
movable : false ,
}
2024-12-27 23:49:11 -05:00
elements . scales = {
color : "#6b839a" ,
2024-12-03 19:43:00 -05:00
category : "structural" ,
behavior : behaviors . WALL ,
2025-01-18 19:19:52 -05:00
nutrTrans : 10 ,
oxygTrans : 10 ,
isMultiDie : false ,
normDie : "dust" ,
otherDie : "calcium" ,
2024-12-03 19:43:00 -05:00
hoverStat : function ( pixel ) {
2024-12-10 19:53:59 -05:00
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
2024-12-03 19:43:00 -05:00
} ,
tick : function ( pixel ) {
2024-12-27 23:49:11 -05:00
if ( pixel . temp > 40 && Math . random ( ) < 0.1 ) {
pixel . temp -= 1 ;
2024-12-03 19:43:00 -05:00
}
doDefaults ( pixel ) ;
2025-01-18 19:19:52 -05:00
doBioNorm ( pixel ) ;
2024-12-03 19:43:00 -05:00
} ,
density : 2710 ,
state : "solid" ,
2024-12-26 19:51:40 -05:00
conduct : . 001 ,
2024-12-27 23:49:11 -05:00
tempHigh : 210 ,
2024-12-03 19:43:00 -05:00
stateHigh : "cooked_meat" ,
tempLow : - 25 ,
stateLow : "frozen_meat" ,
2024-12-27 23:49:11 -05:00
breakInto : [ "blood" , "meat" ] ,
2024-12-03 19:43:00 -05:00
forceSaveColor : true ,
reactions : {
2024-12-27 23:49:11 -05:00
"cancer" : { elem1 : "cancer" , chance : 0.000075 } ,
"radiation" : { elem1 : [ "calcium" , "calcium" , "ash" , "meat" , "rotten_meat" , "cooked_meat" , "skin" , "epidermis" ] , chance : 0.1 } ,
2024-12-03 19:43:00 -05:00
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
2024-12-12 15:47:06 -05:00
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-12-03 19:43:00 -05:00
} ,
isBio : true ,
2025-01-18 19:19:52 -05:00
renderer : renderPresets . FLESHBURN ,
2024-12-03 19:43:00 -05:00
movable : false ,
}
2024-12-27 23:49:11 -05:00
elements . scale _dermis = {
color : "#CFA08B" ,
2024-12-03 19:43:00 -05:00
category : "structural" ,
2024-11-26 22:47:36 -05:00
behavior : behaviors . WALL ,
2025-01-18 19:19:52 -05:00
nutrTrans : 10 ,
oxygTrans : 10 ,
isMultiDie : true ,
normDie : "meat" ,
roomDie : "rotten_meat" ,
coldDie : "frozen_meat" ,
heatDie : "cooked_meat" ,
2024-11-26 22:47:36 -05:00
hoverStat : function ( pixel ) {
2024-12-10 19:53:59 -05:00
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
2024-11-26 22:47:36 -05:00
} ,
tick : function ( pixel ) {
2024-12-27 23:49:11 -05:00
if ( Math . random ( ) > ( 1 - ( ( pixel . nutrition + pixel . oxygen + pixel . speed ) / 2050 ) ) && Math . random ( ) < 0.005 ) {
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 ( "scales" , x , y ) ;
2025-01-02 22:06:28 -05:00
pixelMap [ x ] [ y ] . nutrition = ( Math . round ( pixel . nutrition / 2 ) )
pixelMap [ x ] [ y ] . oxygen = ( Math . round ( pixel . oxygen / 2 ) )
pixel . nutrition = ( Math . round ( pixel . nutrition / 2 ) )
pixel . oxygen = ( Math . round ( pixel . oxygen / 2 ) )
2024-12-27 23:49:11 -05:00
}
}
}
doDefaults ( pixel ) ;
2025-01-18 19:19:52 -05:00
doBioNorm ( pixel ) ;
2024-11-26 22:47:36 -05:00
} ,
density : 2710 ,
state : "solid" ,
2024-12-26 19:51:40 -05:00
conduct : . 001 ,
2024-11-26 22:47:36 -05:00
tempHigh : 200 ,
2024-12-27 23:49:11 -05:00
stateHigh : "cooked_meat" ,
2024-11-26 22:47:36 -05:00
tempLow : - 25 ,
2024-12-27 23:49:11 -05:00
stateLow : "frozen_meat" ,
2024-12-26 19:51:40 -05:00
burn : 5 ,
burnTime : 350 ,
2024-12-27 23:49:11 -05:00
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" ] ,
forceSaveColor : true ,
2024-11-26 22:47:36 -05:00
reactions : {
2024-12-27 23:49:11 -05:00
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "meat" , "rotten_meat" , "cooked_meat" , "flesh" ] , chance : 0.2 } ,
2024-11-26 22:47:36 -05:00
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
2024-12-12 15:47:06 -05:00
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-11-26 22:47:36 -05:00
} ,
isBio : true ,
2025-01-18 19:19:52 -05:00
renderer : renderPresets . FLESHBURN ,
2024-11-26 22:47:36 -05:00
movable : false ,
}
2024-12-27 23:49:11 -05:00
elements . bug _dermis = {
color : "#C6AD5B" ,
2024-12-03 19:43:00 -05:00
category : "structural" ,
behavior : behaviors . WALL ,
2025-01-18 19:19:52 -05:00
nutrTrans : 10 ,
oxygTrans : 10 ,
isMultiDie : true ,
normDie : "meat" ,
roomDie : "rotten_meat" ,
coldDie : "frozen_meat" ,
heatDie : "cooked_meat" ,
2024-12-03 19:43:00 -05:00
hoverStat : function ( pixel ) {
2024-12-10 19:53:59 -05:00
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
2024-12-03 19:43:00 -05:00
} ,
tick : function ( pixel ) {
2024-12-27 23:49:11 -05:00
if ( Math . random ( ) > ( 1 - ( ( pixel . nutrition + pixel . oxygen + pixel . speed ) / 2050 ) ) && Math . random ( ) < 0.005 ) {
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 ( "exoskeleton" , x , y ) ;
2025-01-02 22:06:28 -05:00
pixelMap [ x ] [ y ] . nutrition = ( Math . round ( pixel . nutrition / 2 ) )
pixelMap [ x ] [ y ] . oxygen = ( Math . round ( pixel . oxygen / 2 ) )
pixel . nutrition = ( Math . round ( pixel . nutrition / 2 ) )
pixel . oxygen = ( Math . round ( pixel . oxygen / 2 ) )
2024-12-27 23:49:11 -05:00
}
}
}
doDefaults ( pixel ) ;
2025-01-18 19:19:52 -05:00
doBioNorm ( pixel ) ;
2024-12-03 19:43:00 -05:00
} ,
density : 2710 ,
state : "solid" ,
2024-12-26 19:51:40 -05:00
conduct : . 001 ,
2024-12-03 19:43:00 -05:00
tempHigh : 200 ,
2024-12-27 23:49:11 -05:00
stateHigh : "cooked_meat" ,
2024-12-03 19:43:00 -05:00
tempLow : - 25 ,
2024-12-27 23:49:11 -05:00
stateLow : "frozen_meat" ,
2024-12-26 19:51:40 -05:00
burn : 5 ,
burnTime : 350 ,
2024-12-27 23:49:11 -05:00
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" ] ,
forceSaveColor : true ,
2024-12-03 19:43:00 -05:00
reactions : {
2024-12-27 23:49:11 -05:00
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "meat" , "rotten_meat" , "cooked_meat" , "flesh" ] , chance : 0.2 } ,
2024-12-03 19:43:00 -05:00
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
2024-12-12 15:47:06 -05:00
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-12-03 19:43:00 -05:00
} ,
isBio : true ,
2025-01-18 19:19:52 -05:00
renderer : renderPresets . FLESHBURN ,
2024-12-03 19:43:00 -05:00
movable : false ,
}
2024-12-27 23:49:11 -05:00
elements . amphib _dermis = {
color : "#9DAB6A" ,
category : "structural" ,
2024-11-25 23:09:06 -05:00
behavior : behaviors . WALL ,
2025-01-18 19:19:52 -05:00
nutrTrans : 10 ,
oxygTrans : 10 ,
isMultiDie : true ,
normDie : "meat" ,
roomDie : "rotten_meat" ,
coldDie : "frozen_meat" ,
heatDie : "cooked_meat" ,
2024-11-25 23:09:06 -05:00
hoverStat : function ( pixel ) {
2024-12-10 19:53:59 -05:00
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
2024-11-25 23:09:06 -05:00
} ,
tick : function ( pixel ) {
2024-12-27 23:49:11 -05:00
if ( Math . random ( ) > ( 1 - ( ( pixel . nutrition + pixel . oxygen + pixel . speed ) / 2050 ) ) && Math . random ( ) < 0.005 ) {
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 ( "amphib_skin" , x , y ) ;
2025-01-02 22:06:28 -05:00
pixelMap [ x ] [ y ] . nutrition = ( Math . round ( pixel . nutrition - ( ( pixel . nutrition / 4 ) * 3 ) ) )
pixelMap [ x ] [ y ] . oxygen = ( Math . round ( pixel . oxygen - ( ( pixel . oxygen / 4 ) * 3 ) ) )
pixel . nutrition = ( Math . round ( pixel . nutrition - ( pixel . nutrition / 4 ) ) )
pixel . oxygen = ( Math . round ( pixel . oxygen - ( pixel . oxygen / 4 ) ) )
2024-12-27 23:49:11 -05:00
}
}
}
doDefaults ( pixel ) ;
2025-01-18 19:19:52 -05:00
doBioNorm ( pixel ) ;
2024-11-25 23:09:06 -05:00
} ,
density : 2710 ,
state : "solid" ,
2024-12-27 23:49:11 -05:00
conduct : . 001 ,
2024-11-25 23:09:06 -05:00
tempHigh : 200 ,
2024-12-27 23:49:11 -05:00
stateHigh : "cooked_meat" ,
2024-11-25 23:09:06 -05:00
tempLow : - 25 ,
2024-12-27 23:49:11 -05:00
stateLow : "frozen_meat" ,
burn : 5 ,
burnTime : 350 ,
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" , "meat" , "slime" , "slime" ] ,
forceSaveColor : true ,
2024-11-25 23:09:06 -05:00
reactions : {
2024-12-27 23:49:11 -05:00
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "slime" , "meat" , "rotten_meat" , "cooked_meat" , "flesh" ] , chance : 0.2 } ,
2024-11-25 23:09:06 -05:00
} ,
properties : {
oxygen : 1000 ,
2024-12-27 23:49:11 -05:00
nutrition : 1000 ,
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-11-25 23:09:06 -05:00
} ,
isBio : true ,
2025-01-18 19:19:52 -05:00
renderer : renderPresets . FLESHBURN ,
2024-11-25 23:09:06 -05:00
movable : false ,
}
2024-12-27 23:49:11 -05:00
elements . acidic _flesh = {
color : [ "#946231" , "#976E30" ] ,
category : "structural" ,
behavior : behaviors . WALL ,
2025-01-18 19:19:52 -05:00
nutrTrans : 10 ,
oxygTrans : 10 ,
isMultiDie : true ,
normDie : "meat" ,
roomDie : "acid" ,
coldDie : "acid" ,
heatDie : "acid" ,
2024-11-26 22:47:36 -05:00
hoverStat : function ( pixel ) {
2024-12-10 19:53:59 -05:00
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
2024-11-26 22:47:36 -05:00
} ,
tick : function ( pixel ) {
2025-01-18 19:19:52 -05:00
doBioNorm ( pixel ) ;
doDefaults ( pixel ) ;
2024-11-26 22:47:36 -05:00
} ,
2024-12-27 23:49:11 -05:00
density : 2710 ,
state : "solid" ,
conduct : . 001 ,
tempHigh : 200 ,
stateHigh : [ "acid_gas" , "cooked_meat" , "cooked_meat" , "cooked_meat" ] ,
tempLow : - 25 ,
stateLow : [ "frozen_meat" , "acid" , "acid" ] ,
burn : 5 ,
burnTime : 350 ,
burnInto : [ "acid_gas" , "cooked_meat" , "cooked_meat" ] ,
breakInto : [ "acid" , "acid" , "meat" ] ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "acid" , "fat" , "meat" , "rotten_meat" , "cooked_meat" ] , chance : 0.4 } ,
} ,
properties : {
2024-11-26 22:47:36 -05:00
oxygen : 1000 ,
nutrition : 1000 ,
2024-12-12 15:47:06 -05:00
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-11-26 22:47:36 -05:00
} ,
isBio : true ,
2025-01-18 19:19:52 -05:00
renderer : renderPresets . FLESHBURN ,
2024-12-27 23:49:11 -05:00
movable : false ,
2024-11-26 22:47:36 -05:00
}
2024-12-27 23:49:11 -05:00
elements . slimey _flesh = {
color : [ "#8EA714" , "#96B013" ] ,
category : "structural" ,
behavior : behaviors . WALL ,
2025-01-18 19:19:52 -05:00
nutrTrans : 10 ,
oxygTrans : 10 ,
isMultiDie : true ,
normDie : "meat" ,
roomDie : "slime" ,
coldDie : "slime" ,
heatDie : "slime" ,
2024-11-26 22:47:36 -05:00
hoverStat : function ( pixel ) {
2024-12-10 19:53:59 -05:00
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
2024-11-26 22:47:36 -05:00
} ,
tick : function ( pixel ) {
2025-01-18 19:19:52 -05:00
doBioNorm ( pixel ) ;
doDefaults ( pixel ) ;
} ,
density : 2710 ,
state : "solid" ,
conduct : . 001 ,
tempHigh : 200 ,
stateHigh : [ "slime" , "cooked_meat" , "cooked_meat" , "cooked_meat" ] ,
tempLow : - 25 ,
stateLow : [ "frozen_meat" , "slime_ice" , "slime_ice" ] ,
burn : 5 ,
burnTime : 350 ,
burnInto : [ "slime" , "cooked_meat" , "cooked_meat" ] ,
breakInto : [ "slime" , "slime" , "meat" ] ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "slime" , "slime" , "meat" , "rotten_meat" , "cooked_meat" ] , chance : 0.4 } ,
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
speed : 0 ,
poisoned : false ,
immune : false ,
} ,
isBio : true ,
renderer : renderPresets . FLESHBURN ,
movable : false ,
}
elements . cloak _flesh = {
color : [ "#879720" , "#8C9D1F" ] ,
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 ) ;
doBioNorm ( pixel ) ;
if ( ! isEmpty ( pixel . x , pixel . y - 1 , true ) ) {
var hitPixel = pixelMap [ pixel . x ] [ pixel . y - 1 ]
if ( elements [ hitPixel . element ] . movable ) {
if ( pixel . color != hitPixel . color ) {
pixel . color = hitPixel . color
2024-12-27 23:49:11 -05:00
}
2024-12-26 19:51:40 -05:00
}
2025-01-18 19:19:52 -05:00
}
if ( ! isEmpty ( pixel . x , pixel . y + 1 , true ) ) {
var hitPixel = pixelMap [ pixel . x ] [ pixel . y + 1 ]
if ( elements [ hitPixel . element ] . movable ) {
if ( pixel . color != hitPixel . color ) {
pixel . color = hitPixel . color
2024-12-27 23:49:11 -05:00
}
2024-12-26 19:51:40 -05:00
}
2025-01-18 19:19:52 -05:00
}
if ( ! isEmpty ( pixel . x - 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x - 1 ] [ pixel . y ]
if ( elements [ hitPixel . element ] . movable ) {
if ( pixel . color != hitPixel . color ) {
pixel . color = hitPixel . color
2024-12-26 19:51:40 -05:00
}
}
2024-11-26 22:47:36 -05:00
}
2025-01-18 19:19:52 -05:00
if ( ! isEmpty ( pixel . x + 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x + 1 ] [ pixel . y ]
if ( elements [ hitPixel . element ] . movable ) {
if ( pixel . color != hitPixel . color ) {
pixel . color = hitPixel . color
2025-01-12 21:16:03 -05:00
}
2024-11-27 11:44:05 -05:00
}
}
} ,
2024-12-27 23:49:11 -05:00
density : 2710 ,
state : "solid" ,
conduct : . 001 ,
tempHigh : 200 ,
2025-01-18 19:19:52 -05:00
stateHigh : "cooked_meat" ,
2024-12-27 23:49:11 -05:00
tempLow : - 25 ,
2025-01-18 19:19:52 -05:00
stateLow : "frozen_meat" ,
burn : 4 ,
2024-12-27 23:49:11 -05:00
burnTime : 350 ,
2025-01-18 19:19:52 -05:00
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" ] ,
forceSaveColor : true ,
2024-12-27 23:49:11 -05:00
reactions : {
2025-01-18 19:19:52 -05:00
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "meat" , "rotten_meat" , "cooked_meat" , "flesh" ] , chance : 0.2 } ,
2024-12-27 23:49:11 -05:00
} ,
properties : {
2024-11-27 11:44:05 -05:00
oxygen : 1000 ,
nutrition : 1000 ,
2024-12-12 15:47:06 -05:00
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-11-27 11:44:05 -05:00
} ,
isBio : true ,
2025-01-18 19:19:52 -05:00
renderer : renderPresets . FLESHBURN ,
2024-12-27 23:49:11 -05:00
movable : false ,
2024-11-27 11:44:05 -05:00
}
2025-01-18 19:19:52 -05:00
elements . adipose = {
color : [ "#C3A375" , "#B9945A" ] ,
category : "nutrition" ,
2024-12-27 23:49:11 -05:00
behavior : behaviors . WALL ,
2025-01-18 19:19:52 -05:00
nutrTrans : 5 ,
oxygTrans : 15 ,
isMultiDie : true ,
normDie : "meat" ,
roomDie : "grease" ,
coldDie : "fat" ,
heatDie : "grease" ,
2024-12-11 17:59:12 -05:00
hoverStat : function ( pixel ) {
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
} ,
tick : function ( pixel ) {
2024-12-27 23:49:11 -05:00
doDefaults ( pixel ) ;
2025-01-18 19:19:52 -05:00
doBioNorm ( pixel ) ;
} ,
density : 2710 ,
state : "solid" ,
conduct : . 03 ,
tempHigh : 200 ,
stateHigh : [ "fat" , "fat" , "fat" , "cooked_meat" ] ,
tempLow : - 25 ,
stateLow : [ "fat" , "frozen_meat" ] ,
burn : 10 ,
burnTime : 300 ,
burnInto : [ "fat" , "fat" , "fat" , "cooked_meat" ] ,
breakInto : [ "fat" , "meat" ] ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "blood" , "fat" , "fat" , "fat" , "fat" , "fat" , "meat" , "rotten_meat" , "cooked_meat" ] , chance : 0.4 } ,
} ,
properties : {
oxygen : 1000 ,
nutrition : 1005 ,
} ,
isBio : true ,
renderer : renderPresets . FLESHBURN ,
movable : false ,
}
elements . acid _vessel = {
color : "#BF6B0E" ,
behavior : [
"XX|SW:acid_vessel%1|XX" ,
"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 ) {
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 )
2024-12-26 19:51:40 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . oxygen -= 50
pixel . nutrition -= 50
2024-12-11 17:59:12 -05:00
}
2025-01-18 19:19:52 -05:00
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
2024-12-11 17:59:12 -05:00
}
2025-01-18 19:19:52 -05:00
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
2024-12-12 15:47:06 -05:00
}
2025-01-18 19:19:52 -05:00
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
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
speed : 0 ,
poisoned : false ,
immune : false ,
} ,
tempHigh : 175 ,
stateHigh : [ "acid_gas" , "acid_gas" , "acid_gas" , "cooked_meat" , "cooked_meat" ] ,
tempLow : - 50 ,
stateLow : "frozen_meat" ,
burn : 20 ,
burnTime : 160 ,
burnInto : [ "acid_gas" , "acid_gas" , "acid_gas" , "acid_gas" , "cooked_meat" ] ,
breakInto : "acid" ,
category : "circulation" ,
state : "solid" ,
density : 1250 ,
conduct : . 001 ,
movable : false ,
isBio : true ,
renderer : renderPresets . FLESHBURN ,
}
elements . heart = {
color : [ "#98002e" , "#532e63" , "#6f1200" , "#551900" ] ,
behavior : [
"XX|XX|XX" ,
"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 ) {
doBioNorm ( pixel ) ;
2024-12-11 17:59:12 -05:00
if ( ! isEmpty ( pixel . x , pixel . y - 1 , true ) ) {
var hitPixel = pixelMap [ pixel . x ] [ pixel . y - 1 ]
2025-01-18 19:19:52 -05:00
if ( elements [ hitPixel . element ] . isBlood === true && Math . random ( ) > 0.5 ) {
hitPixel . heartAttached = true
2024-12-27 23:49:11 -05:00
}
2025-01-18 19:19:52 -05:00
}
else if ( isEmpty ( pixel . x , pixel . y - 1 ) && Math . random ( ) > 0.75 ) {
if ( Math . random ( ) > 0.95 ) {
createPixel ( "blood" , pixel . x , pixel . y - 1 )
2024-12-11 17:59:12 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . oxygen -= 50
pixel . nutrition -= 50
2024-12-11 17:59:12 -05:00
}
if ( ! isEmpty ( pixel . x , pixel . y + 1 , true ) ) {
var hitPixel = pixelMap [ pixel . x ] [ pixel . y + 1 ]
2025-01-18 19:19:52 -05:00
if ( elements [ hitPixel . element ] . isBlood === true && Math . random ( ) > 0.5 ) {
hitPixel . heartAttached = true
2024-12-27 23:49:11 -05:00
}
2025-01-18 19:19:52 -05:00
}
else if ( isEmpty ( pixel . x , pixel . y + 1 ) && Math . random ( ) > 0.75 ) {
if ( Math . random ( ) > 0.95 ) {
createPixel ( "blood" , pixel . x , pixel . y + 1 )
2024-12-11 17:59:12 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . oxygen -= 50
pixel . nutrition -= 50
2024-12-11 17:59:12 -05:00
}
if ( ! isEmpty ( pixel . x - 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x - 1 ] [ pixel . y ]
2025-01-18 19:19:52 -05:00
if ( elements [ hitPixel . element ] . isBlood === true && Math . random ( ) > 0.5 ) {
hitPixel . heartAttached = true
2024-12-27 23:49:11 -05:00
}
2025-01-18 19:19:52 -05:00
}
else if ( isEmpty ( pixel . x - 1 , pixel . y ) && Math . random ( ) > 0.75 ) {
if ( Math . random ( ) > 0.95 ) {
createPixel ( "blood" , pixel . x - 1 , pixel . y )
2024-12-11 17:59:12 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . oxygen -= 50
pixel . nutrition -= 50
2024-12-11 17:59:12 -05:00
}
if ( ! isEmpty ( pixel . x + 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x + 1 ] [ pixel . y ]
2025-01-18 19:19:52 -05:00
if ( elements [ hitPixel . element ] . isBlood === true && Math . random ( ) > 0.5 ) {
hitPixel . heartAttached = true
2024-12-27 23:49:11 -05:00
}
2025-01-18 19:19:52 -05:00
}
else if ( isEmpty ( pixel . x + 1 , pixel . y ) && Math . random ( ) > 0.75 ) {
if ( Math . random ( ) > 0.95 ) {
createPixel ( "blood" , pixel . x + 1 , pixel . y )
2024-12-11 17:59:12 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . oxygen -= 50
pixel . nutrition -= 50
2024-12-11 17:59:12 -05:00
}
} ,
2025-01-18 19:19:52 -05:00
properties : {
2024-12-27 23:49:11 -05:00
oxygen : 1000 ,
nutrition : 1000 ,
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-12-27 23:49:11 -05:00
} ,
2025-01-18 19:19:52 -05:00
tempHigh : 175 ,
stateHigh : "meat" ,
tempLow : - 50 ,
stateLow : "frozen_meat" ,
burn : 20 ,
burnTime : 160 ,
burnInto : "meat" ,
breakInto : [ "meat" , "blood" , "blood" , ] ,
category : "circulation" ,
state : "solid" ,
density : 1250 ,
conduct : . 001 ,
2024-12-27 23:49:11 -05:00
movable : false ,
2025-01-18 19:19:52 -05:00
isBio : true ,
renderer : renderPresets . FLESHBURN ,
2024-12-11 17:59:12 -05:00
}
2025-01-18 19:19:52 -05:00
elements . kidney = {
color : [ "#AB1354" , "#89212E" , "#74272E" ] ,
2024-12-27 23:49:11 -05:00
behavior : behaviors . WALL ,
2025-01-18 19:19:52 -05:00
nutrTrans : 20 ,
oxygTrans : 25 ,
isMultiDie : true ,
normDie : "urine" ,
roomDie : "meat" ,
coldDie : "frozen_meat" ,
heatDie : "cooked_meat" ,
2024-12-12 15:47:06 -05:00
hoverStat : function ( pixel ) {
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
} ,
tick : function ( pixel ) {
2025-01-18 19:19:52 -05:00
doBioNorm ( pixel ) ;
2024-12-12 15:47:06 -05:00
if ( ! isEmpty ( pixel . x , pixel . y - 1 , true ) ) {
var hitPixel = pixelMap [ pixel . x ] [ pixel . y - 1 ]
2025-01-18 19:19:52 -05:00
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
}
2025-01-19 00:55:35 -05:00
if ( hitPixel . pee < pixel . pee && elements [ hitPixel . element ] . isKidney === true ) {
2025-01-18 22:27:58 -05:00
hitPixel . pee += 1
pixel . pee -= 1
}
2025-01-18 19:19:52 -05:00
}
else if ( pixel . pee > 4 && Math . random ( ) > 0.95 ) {
if ( Math . random ( ) > 0.8 ) {
createPixel ( "urine" , pixel . x , pixel . y - 1 )
2024-12-12 15:47:06 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . pee -= 5
2024-12-12 15:47:06 -05:00
}
if ( ! isEmpty ( pixel . x , pixel . y + 1 , true ) ) {
var hitPixel = pixelMap [ pixel . x ] [ pixel . y + 1 ]
2025-01-18 19:19:52 -05:00
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
}
2025-01-19 00:55:35 -05:00
if ( hitPixel . pee < pixel . pee && elements [ hitPixel . element ] . isKidney === true ) {
2025-01-18 22:27:58 -05:00
hitPixel . pee += 1
pixel . pee -= 1
}
2025-01-18 19:19:52 -05:00
}
else if ( pixel . pee > 4 && Math . random ( ) > 0.95 ) {
if ( Math . random ( ) > 0.8 ) {
createPixel ( "urine" , pixel . x , pixel . y + 1 )
2024-12-12 15:47:06 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . pee -= 5
2024-12-12 15:47:06 -05:00
}
if ( ! isEmpty ( pixel . x - 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x - 1 ] [ pixel . y ]
2025-01-18 19:19:52 -05:00
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
}
2025-01-19 00:55:35 -05:00
if ( hitPixel . pee < pixel . pee && elements [ hitPixel . element ] . isKidney === true ) {
2025-01-18 22:27:58 -05:00
hitPixel . pee += 1
pixel . pee -= 1
}
2025-01-18 19:19:52 -05:00
}
else if ( pixel . pee > 4 && Math . random ( ) > 0.95 ) {
if ( Math . random ( ) > 0.8 ) {
createPixel ( "urine" , pixel . x - 1 , pixel . y )
2024-12-12 15:47:06 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . pee -= 5
2024-12-12 15:47:06 -05:00
}
if ( ! isEmpty ( pixel . x + 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x + 1 ] [ pixel . y ]
2025-01-18 19:19:52 -05:00
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
}
2025-01-19 00:55:35 -05:00
if ( hitPixel . pee < pixel . pee && elements [ hitPixel . element ] . isKidney === true ) {
2025-01-18 22:27:58 -05:00
hitPixel . pee += 1
pixel . pee -= 1
}
2025-01-18 19:19:52 -05:00
}
else if ( pixel . pee > 4 && Math . random ( ) > 0.95 ) {
if ( Math . random ( ) > 0.8 ) {
createPixel ( "urine" , pixel . x + 1 , pixel . y )
2024-12-12 15:47:06 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . pee -= 5
2024-12-12 15:47:06 -05:00
}
} ,
2025-01-18 19:19:52 -05:00
properties : {
2024-12-12 15:47:06 -05:00
oxygen : 1000 ,
2025-01-18 19:19:52 -05:00
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" ,
tempLow : - 50 ,
stateLow : "frozen_meat" ,
burn : 20 ,
burnTime : 160 ,
burnInto : "meat" ,
breakInto : [ "meat" , "urine" , "blood" ] ,
category : "circulation" ,
state : "solid" ,
density : 1250 ,
conduct : . 001 ,
2024-12-27 23:49:11 -05:00
movable : false ,
2025-01-18 19:19:52 -05:00
isBio : true ,
isKidney : true ,
2024-12-12 15:47:06 -05:00
}
2025-01-18 19:19:52 -05:00
elements . liver = {
color : [ "#6c2e1f" , "#7B2827" , "#702B27" ] ,
behavior : behaviors . WALL ,
nutrTrans : 20 ,
oxygTrans : 25 ,
isMultiDie : true ,
normDie : "rotten_meat" ,
roomDie : "rotten_meat" ,
coldDie : "frozen_meat" ,
heatDie : "cooked_meat" ,
2024-11-27 11:44:05 -05:00
hoverStat : function ( pixel ) {
2024-12-10 19:53:59 -05:00
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
2024-11-27 11:44:05 -05:00
} ,
tick : function ( pixel ) {
2025-01-18 19:19:52 -05:00
doBioNorm ( pixel ) ;
if ( pixel . speed < - 1 && Math . random ( ) < ( 1 - ( ( pixel . nutrition + pixel . oxygen + pixel . speed ) / 2050 ) ) ) {
pixel . speed += 1
2024-11-26 22:47:36 -05:00
}
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
2024-12-27 23:49:11 -05:00
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2024-11-27 11:44:05 -05:00
} ,
tempHigh : 175 ,
2025-01-18 19:19:52 -05:00
stateHigh : "meat" ,
2024-11-27 11:44:05 -05:00
tempLow : - 50 ,
stateLow : "frozen_meat" ,
burn : 20 ,
2024-12-26 19:51:40 -05:00
burnTime : 160 ,
2025-01-18 19:19:52 -05:00
burnInto : "meat" ,
breakInto : [ "meat" , "rotten_meat" , "blood" , ] ,
category : "nutrition" ,
2024-11-27 11:44:05 -05:00
state : "solid" ,
density : 1250 ,
2024-12-26 19:51:40 -05:00
conduct : . 001 ,
2024-11-27 11:44:05 -05:00
movable : false ,
isBio : true ,
2025-01-18 19:19:52 -05:00
renderer : renderPresets . FLESHBURN ,
2024-11-27 11:44:05 -05:00
}
2025-01-18 19:19:52 -05:00
elements . blood _vessel = {
color : "#c72114" ,
2024-11-27 11:44:05 -05:00
behavior : [
2025-01-19 00:55:35 -05:00
"XX|SW:blood_vessel%5|XX" ,
"SW:blood_vessel%5|XX|SW:blood_vessel%5" ,
"XX|SW:blood_vessel%5|XX" ,
2024-11-27 11:44:05 -05:00
] ,
2025-01-18 19:19:52 -05:00
ageRate : 0.975 ,
nutrTrans : 20 ,
oxygTrans : 25 ,
isMultiDie : true ,
bleed : "blood" ,
2024-11-27 11:44:05 -05:00
hoverStat : function ( pixel ) {
2024-12-10 19:53:59 -05:00
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
2024-11-27 11:44:05 -05:00
} ,
tick : function ( pixel ) {
2025-01-18 19:19:52 -05:00
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" , "blood" , "blood" , "blood" ] ,
burn : 20 ,
burnTime : 160 ,
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 ,
}
elements . infected _vessel = {
color : "#BF0347" ,
behavior : [
"XX|SW:blood_vessel%1|XX" ,
"SW:blood_vessel%1|XX|SW:blood_vessel%1" ,
2025-01-19 00:55:35 -05:00
"XX|SW:blood_vessel%2|XX" ,
2025-01-18 19:19:52 -05:00
] ,
ageRate : 0.5 ,
nutrTrans : 5 ,
oxygTrans : 10 ,
isMultiDie : true ,
bleed : "infection" ,
hoverStat : function ( pixel ) {
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
} ,
tick : function ( pixel ) {
doBioBlood ( pixel ) ;
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
speed : 0 ,
poisoned : false ,
immune : false ,
heartAttached : false ,
} ,
reactions : {
"bless" : { elem1 : "blood_vessel" } ,
} ,
tempHigh : 175 ,
stateHigh : "meat" ,
tempLow : - 50 ,
stateLow : "frozen_meat" ,
burn : 20 ,
burnTime : 160 ,
burnInto : "meat" ,
breakInto : "blood" ,
category : "circulation" ,
state : "solid" ,
density : 1250 ,
conduct : . 001 ,
movable : false ,
extinguish : true ,
isBio : true ,
renderer : renderPresets . FLESHBURN ,
isBlood : true ,
}
elements . white _blood _cell = {
color : "#F5D7D4" ,
behavior : [
2025-01-19 00:55:35 -05:00
"XX|SW:blood_vessel,white_blood_cell%5|XX" ,
"SW:blood_vessel,white_blood_cell%5|XX|SW:blood_vessel,white_blood_cell%5" ,
"XX|SW:blood_vessel,white_blood_cell%5|XX" ,
2025-01-18 19:19:52 -05:00
] ,
ageRate : 0.995 ,
nutrTrans : 20 ,
oxygTrans : 25 ,
isMultiDie : true ,
bleed : "blood" ,
hoverStat : function ( pixel ) {
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
} ,
tick : function ( pixel ) {
doBioBlood ( pixel ) ;
if ( Math . random ( ) > 0.995 && Math . random ( ) < ( 1 - ( ( pixel . nutrition + pixel . oxygen + pixel . speed ) / 2050 ) ) || Math . random ( ) > 0.9995 ) {
pixel . element = "blood_vessel"
pixel . color = elements . blood _vessel . color
2024-11-27 11:44:05 -05:00
}
2025-01-18 19:19:52 -05:00
if ( ! isEmpty ( pixel . x , pixel . y - 1 , true ) ) {
var hitPixel = pixelMap [ pixel . x ] [ pixel . y - 1 ]
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
}
2024-12-27 23:49:11 -05:00
}
}
2024-11-27 11:44:05 -05:00
if ( ! isEmpty ( pixel . x , pixel . y + 1 , true ) ) {
var hitPixel = pixelMap [ pixel . x ] [ pixel . y + 1 ]
2025-01-18 19:19:52 -05:00
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
2024-11-27 11:44:05 -05:00
}
2024-12-27 23:49:11 -05:00
}
}
2024-11-27 11:44:05 -05:00
if ( ! isEmpty ( pixel . x - 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x - 1 ] [ pixel . y ]
2025-01-18 19:19:52 -05:00
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
2024-11-27 11:44:05 -05:00
}
}
}
if ( ! isEmpty ( pixel . x + 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x + 1 ] [ pixel . y ]
2025-01-18 19:19:52 -05:00
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
2024-11-27 11:44:05 -05:00
}
2024-12-27 23:49:11 -05:00
}
}
2024-11-27 11:44:05 -05:00
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
2024-12-27 23:49:11 -05:00
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
heartAttached : false ,
2024-11-26 22:47:36 -05:00
} ,
2025-01-18 19:19:52 -05:00
reactions : {
"cancer" : { elem2 : "flesh" , chance : 0.10 } ,
"infected_vessel" : { elem2 : "blood_vessel" , chance : 0.10 } ,
"plague" : { elem2 : null , chance : 0.10 } ,
"rotten_meat" : { elem2 : "flesh" , chance : 0.10 } ,
} ,
2024-11-26 22:47:36 -05:00
tempHigh : 175 ,
stateHigh : "meat" ,
tempLow : - 50 ,
stateLow : "frozen_meat" ,
burn : 20 ,
2024-12-26 19:51:40 -05:00
burnTime : 160 ,
2024-11-26 22:47:36 -05:00
burnInto : "meat" ,
2025-01-18 19:19:52 -05:00
breakInto : "blood" ,
2024-11-27 23:13:34 -05:00
category : "circulation" ,
2024-11-26 22:47:36 -05:00
state : "solid" ,
density : 1250 ,
2024-12-26 19:51:40 -05:00
conduct : . 001 ,
2024-11-26 22:47:36 -05:00
movable : false ,
2025-01-18 19:19:52 -05:00
extinguish : true ,
2024-11-26 22:47:36 -05:00
isBio : true ,
2025-01-18 19:19:52 -05:00
renderer : renderPresets . FLESHBURN ,
isBlood : true ,
2024-11-26 22:47:36 -05:00
}
2025-01-18 19:19:52 -05:00
elements . eye = {
color : "#451800" ,
category : "nervous system" ,
nutrTrans : 10 ,
oxygTrans : 10 ,
isMultiDie : false ,
normDie : "meat" ,
otherDie : "salt_water" ,
2024-11-25 23:09:06 -05:00
hoverStat : function ( pixel ) {
2024-12-10 19:53:59 -05:00
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
2024-11-25 23:09:06 -05:00
} ,
tick : function ( pixel ) {
2025-01-18 19:19:52 -05:00
doHeat ( pixel ) ;
doBurning ( pixel ) ;
doElectricity ( pixel ) ;
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 . light . id ) {
pixel . saw = true
}
else if ( pixel . saw === 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
2024-12-27 23:49:11 -05:00
}
2025-01-18 19:19:52 -05:00
else if ( hitPixel . charge ) {
hitPixel . charge += 0.1
2024-12-27 23:49:11 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . saw = false
}
}
if ( ! isEmpty ( pixel . x , pixel . y + 1 , true ) ) {
var hitPixel = pixelMap [ pixel . x ] [ pixel . y + 1 ]
doElectricity ( hitPixel ) ;
if ( elements [ hitPixel . element ] . id === elements . light . id && Math . random ( ) > 0.5 ) {
pixel . saw = true
2024-12-27 23:49:11 -05:00
}
2025-01-18 19:19:52 -05:00
else if ( pixel . saw === 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
2024-12-27 23:49:11 -05:00
}
2025-01-18 19:19:52 -05:00
else if ( hitPixel . charge ) {
hitPixel . charge += 0.1
2024-12-27 23:49:11 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . saw = false
2024-12-03 19:43:00 -05:00
}
2025-01-18 19:19:52 -05:00
}
if ( ! isEmpty ( pixel . x - 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x - 1 ] [ pixel . y ]
doElectricity ( hitPixel ) ;
if ( elements [ hitPixel . element ] . id === elements . light . id && Math . random ( ) > 0.5 ) {
pixel . saw = true
}
else if ( pixel . saw === 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
2024-12-27 23:49:11 -05:00
}
2025-01-18 19:19:52 -05:00
else if ( hitPixel . charge ) {
hitPixel . charge += 0.1
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . saw = false
2024-11-26 22:47:36 -05:00
}
}
if ( ! isEmpty ( pixel . x + 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x + 1 ] [ pixel . y ]
2025-01-18 19:19:52 -05:00
doElectricity ( hitPixel ) ;
if ( elements [ hitPixel . element ] . id === elements . light . id && Math . random ( ) > 0.5 ) {
pixel . saw = true
2025-01-02 22:06:28 -05:00
}
2025-01-18 19:19:52 -05:00
else if ( pixel . saw === 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
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
else if ( hitPixel . charge ) {
hitPixel . charge += 0.1
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . saw = false
2024-11-26 22:47:36 -05:00
}
}
2025-01-18 19:19:52 -05:00
if ( pixel . saw === true && Math . random ( ) > 0.8 ) {
pixel . saw = false
}
2024-11-26 22:47:36 -05:00
} ,
density : 2710 ,
state : "solid" ,
2024-12-03 19:43:00 -05:00
tempHigh : 200 ,
2025-01-18 19:19:52 -05:00
stateHigh : [ "cooked_meat" , "salt_water" , "blood" ] ,
2024-11-26 22:47:36 -05:00
tempLow : - 25 ,
2025-01-18 19:19:52 -05:00
stateLow : [ "salt_water" , "cerebrospinal_fluid" , "salt_water" , "blood" , "frozen_meat" ] ,
2024-12-26 19:51:40 -05:00
burn : 5 ,
burnTime : 350 ,
2025-01-18 19:19:52 -05:00
conduct : . 001 ,
burnInto : [ "cooked_meat" , "salt_water" , "blood" ] ,
breakInto : [ "blood" , "blood" , "blood" , "blood" , "cerebrospinal_fluid" , "cerebrospinal_fluid" , "salt_water" , "meat" ] ,
2024-11-26 22:47:36 -05:00
forceSaveColor : true ,
reactions : {
2024-12-03 19:43:00 -05:00
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
2025-01-18 19:19:52 -05:00
"radiation" : { elem1 : [ "ash" , "steam" , "salt" , "ash" , "steam" , "salt" , "meat" , "rotten_meat" , "cooked_meat" , "flesh" ] , chance : 0.5 } ,
2024-11-26 22:47:36 -05:00
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
2025-01-18 19:19:52 -05:00
saw : false ,
2024-11-26 22:47:36 -05:00
} ,
2025-01-18 19:19:52 -05:00
isBio : true ,
renderer : renderPresets . FLESHBURN ,
2024-11-26 22:47:36 -05:00
movable : false ,
}
2025-01-18 19:19:52 -05:00
elements . olfactory _bulb = {
color : "#8A7650" ,
category : "nervous system" ,
nutrTrans : 10 ,
oxygTrans : 10 ,
isMultiDie : false ,
normDie : "meat" ,
otherDie : "rotten_meat" ,
hoverStat : function ( pixel ) {
2024-12-10 19:53:59 -05:00
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
2024-11-26 12:06:53 -05:00
} ,
tick : function ( pixel ) {
2025-01-18 19:19:52 -05:00
doHeat ( pixel ) ;
doBurning ( pixel ) ;
doElectricity ( pixel ) ;
doBioNorm ( pixel ) ;
if ( ! isEmpty ( pixel . x , pixel . y - 1 , true ) ) {
2024-11-26 12:06:53 -05:00
var hitPixel = pixelMap [ pixel . x ] [ pixel . y - 1 ]
2025-01-18 19:19:52 -05:00
doElectricity ( hitPixel ) ;
if ( ( elements [ hitPixel . element ] . id === elements . smoke . id || elements [ hitPixel . element ] . id === elements . stench . id || elements [ hitPixel . element ] . id === elements . fragrance . id || elements [ hitPixel . element ] . id === elements . methane . id || elements [ hitPixel . element ] . id === elements . ammonia . id ) && Math . random ( ) > 0.5 ) {
pixel . smell = true
deletePixel ( hitPixel . x , hitPixel . y )
2025-01-02 22:06:28 -05:00
}
2025-01-18 19:19:52 -05:00
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
}
else if ( pixel . smell === 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
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
else if ( hitPixel . charge ) {
hitPixel . charge += 0.1
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . smell = false
2024-11-26 12:06:53 -05:00
}
}
if ( ! isEmpty ( pixel . x , pixel . y + 1 , true ) ) {
var hitPixel = pixelMap [ pixel . x ] [ pixel . y + 1 ]
2025-01-18 19:19:52 -05:00
doElectricity ( hitPixel ) ;
if ( ( elements [ hitPixel . element ] . id === elements . smoke . id || elements [ hitPixel . element ] . id === elements . stench . id || elements [ hitPixel . element ] . id === elements . fragrance . id || elements [ hitPixel . element ] . id === elements . methane . id || elements [ hitPixel . element ] . id === elements . ammonia . id ) && Math . random ( ) > 0.5 ) {
pixel . smell = true
deletePixel ( hitPixel . x , hitPixel . y )
}
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
}
else if ( pixel . smell === 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
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
else if ( hitPixel . charge ) {
hitPixel . charge += 0.1
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . smell = false
2024-11-26 12:06:53 -05:00
}
}
if ( ! isEmpty ( pixel . x - 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x - 1 ] [ pixel . y ]
2025-01-18 19:19:52 -05:00
doElectricity ( hitPixel ) ;
if ( ( elements [ hitPixel . element ] . id === elements . smoke . id || elements [ hitPixel . element ] . id === elements . stench . id || elements [ hitPixel . element ] . id === elements . fragrance . id || elements [ hitPixel . element ] . id === elements . methane . id || elements [ hitPixel . element ] . id === elements . ammonia . id ) && Math . random ( ) > 0.5 ) {
pixel . smell = true
deletePixel ( hitPixel . x , hitPixel . y )
2025-01-02 22:06:28 -05:00
}
2025-01-18 19:19:52 -05:00
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
}
else if ( pixel . smell === 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
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
else if ( hitPixel . charge ) {
hitPixel . charge += 0.1
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . smell = false
2024-11-26 12:06:53 -05:00
}
}
if ( ! isEmpty ( pixel . x + 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x + 1 ] [ pixel . y ]
2025-01-18 19:19:52 -05:00
doElectricity ( hitPixel ) ;
if ( ( elements [ hitPixel . element ] . id === elements . smoke . id || elements [ hitPixel . element ] . id === elements . stench . id || elements [ hitPixel . element ] . id === elements . fragrance . id || elements [ hitPixel . element ] . id === elements . methane . id || elements [ hitPixel . element ] . id === elements . ammonia . id ) && Math . random ( ) > 0.5 ) {
pixel . smell = true
deletePixel ( hitPixel . x , hitPixel . y )
2025-01-02 22:06:28 -05:00
}
2025-01-18 19:19:52 -05:00
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
}
else if ( pixel . smell === 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
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
else if ( hitPixel . charge ) {
hitPixel . charge += 0.1
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . smell = false
2024-11-26 12:06:53 -05:00
}
}
2025-01-18 19:19:52 -05:00
if ( pixel . smell === true && Math . random ( ) > 0.8 ) {
pixel . smell = false
}
2024-11-26 12:06:53 -05:00
} ,
density : 2710 ,
state : "solid" ,
2024-12-27 23:49:11 -05:00
tempHigh : 200 ,
2025-01-18 19:19:52 -05:00
stateHigh : [ "cooked_meat" , "slime" , "blood" ] ,
2024-11-26 12:06:53 -05:00
tempLow : - 25 ,
2025-01-18 19:19:52 -05:00
stateLow : [ "slime" , "slime" , "blood" , "frozen_meat" ] ,
2024-12-27 23:49:11 -05:00
burn : 5 ,
burnTime : 350 ,
2025-01-18 19:19:52 -05:00
conduct : . 001 ,
burnInto : [ "cooked_meat" , "slime" , "blood" ] ,
breakInto : [ "blood" , "blood" , "meat" , "meat" , "slime" , "slime" , "slime" , "meat" ] ,
2024-11-26 12:06:53 -05:00
forceSaveColor : true ,
reactions : {
2024-12-27 23:49:11 -05:00
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
2025-01-18 19:19:52 -05:00
"radiation" : { elem1 : [ "ash" , "steam" , "slime" , "ash" , "slime" , "slime" , "meat" , "rotten_meat" , "cooked_meat" , "flesh" ] , chance : 0.5 } ,
2024-11-26 12:06:53 -05:00
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
2025-01-18 19:19:52 -05:00
smell : false ,
2024-11-26 12:06:53 -05:00
} ,
2025-01-18 19:19:52 -05:00
isBio : true ,
renderer : renderPresets . FLESHBURN ,
2024-11-26 12:06:53 -05:00
movable : false ,
}
2025-01-18 19:19:52 -05:00
elements . taste _bud = {
color : "#DB6767" ,
category : "nervous system" ,
nutrTrans : 10 ,
oxygTrans : 10 ,
isMultiDie : false ,
normDie : "meat" ,
otherDie : "rotten_meat" ,
hoverStat : function ( pixel ) {
2024-12-10 19:53:59 -05:00
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
2024-11-25 23:09:06 -05:00
} ,
tick : function ( pixel ) {
2025-01-18 19:19:52 -05:00
doHeat ( pixel ) ;
doBurning ( pixel ) ;
doElectricity ( pixel ) ;
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 . tasted = true
if ( Math . random ( ) > 0.5 ) {
hitPixel . tasted = false
2024-12-26 19:51:40 -05:00
}
2024-12-03 19:43:00 -05:00
}
2025-01-18 19:19:52 -05:00
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 . tasted = true
if ( Math . random ( ) > 0.5 ) {
hitPixel . tasted = false
2024-12-26 19:51:40 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . oxygen --
pixel . nutrition --
2024-12-03 19:43:00 -05:00
}
2025-01-18 19:19:52 -05:00
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
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
else if ( hitPixel . charge ) {
hitPixel . charge += 0.1
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . tasted = false
2025-01-02 22:06:28 -05:00
}
2024-12-03 19:43:00 -05:00
}
if ( ! isEmpty ( pixel . x , pixel . y + 1 , true ) ) {
var hitPixel = pixelMap [ pixel . x ] [ pixel . y + 1 ]
2025-01-18 19:19:52 -05:00
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 . tasted = true
if ( Math . random ( ) > 0.5 ) {
hitPixel . tasted = false
2024-12-03 19:43:00 -05:00
}
2025-01-18 19:19:52 -05:00
}
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 . tasted = true
if ( Math . random ( ) > 0.5 ) {
hitPixel . tasted = false
2024-12-12 15:47:06 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . oxygen --
pixel . nutrition --
}
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
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
else if ( hitPixel . charge ) {
hitPixel . charge += 0.1
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . tasted = false
2024-12-03 19:43:00 -05:00
}
}
if ( ! isEmpty ( pixel . x - 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x - 1 ] [ pixel . y ]
2025-01-18 19:19:52 -05:00
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 . tasted = true
if ( Math . random ( ) > 0.5 ) {
hitPixel . tasted = false
2024-12-03 19:43:00 -05:00
}
2025-01-18 19:19:52 -05:00
}
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 . tasted = true
if ( Math . random ( ) > 0.5 ) {
hitPixel . tasted = false
2024-12-12 15:47:06 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . oxygen --
pixel . nutrition --
}
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
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
else if ( hitPixel . charge ) {
hitPixel . charge += 0.1
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . tasted = false
2025-01-02 22:06:28 -05:00
}
2024-12-03 19:43:00 -05:00
}
if ( ! isEmpty ( pixel . x + 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x + 1 ] [ pixel . y ]
2025-01-18 19:19:52 -05:00
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 . tasted = true
if ( Math . random ( ) > 0.5 ) {
hitPixel . tasted = false
2024-12-03 19:43:00 -05:00
}
2025-01-18 19:19:52 -05:00
}
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 . tasted = true
if ( Math . random ( ) > 0.5 ) {
hitPixel . tasted = false
2024-12-12 15:47:06 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . oxygen --
pixel . nutrition --
}
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
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
else if ( hitPixel . charge ) {
hitPixel . charge += 0.1
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . tasted = false
2025-01-02 22:06:28 -05:00
}
2024-12-03 19:43:00 -05:00
}
2025-01-18 19:19:52 -05:00
if ( pixel . tasted === true && Math . random ( ) > 0.8 ) {
pixel . tasted = false
}
2024-12-03 19:43:00 -05:00
} ,
density : 2710 ,
state : "solid" ,
tempHigh : 200 ,
2025-01-18 19:19:52 -05:00
stateHigh : [ "cooked_meat" , "meat" , "blood" ] ,
2024-12-03 19:43:00 -05:00
tempLow : - 25 ,
2025-01-18 19:19:52 -05:00
stateLow : [ "meat" , "blood" , "blood" , "frozen_meat" ] ,
2024-12-26 19:51:40 -05:00
burn : 5 ,
burnTime : 350 ,
2025-01-18 19:19:52 -05:00
conduct : . 001 ,
burnInto : [ "cooked_meat" , "meat" , "blood" ] ,
breakInto : [ "blood" , "blood" , "meat" , "meat" , "meat" , "meat" , "blood" , "meat" ] ,
2024-12-03 19:43:00 -05:00
forceSaveColor : true ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
2025-01-18 19:19:52 -05:00
"radiation" : { elem1 : [ "ash" , "ash" , "meat" , "rotten_meat" , "cooked_meat" , "flesh" ] , chance : 0.5 } ,
2024-12-03 19:43:00 -05:00
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
2025-01-18 19:19:52 -05:00
taste : false ,
2024-12-03 19:43:00 -05:00
} ,
2025-01-18 19:19:52 -05:00
isBio : true ,
renderer : renderPresets . FLESHBURN ,
2024-12-03 19:43:00 -05:00
movable : false ,
}
2025-01-18 19:19:52 -05:00
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 ) {
2024-12-10 19:53:59 -05:00
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
2024-12-03 19:43:00 -05:00
} ,
tick : function ( pixel ) {
2025-01-18 19:19:52 -05:00
doDefaults ( pixel ) ;
doBioNorm ( pixel ) ;
if ( ! isEmpty ( pixel . x , pixel . y - 1 , true ) ) {
2024-12-03 19:43:00 -05:00
var hitPixel = pixelMap [ pixel . x ] [ pixel . y - 1 ]
2025-01-18 19:19:52 -05:00
doElectricity ( hitPixel ) ;
if ( elements [ hitPixel . element ] . id === elements . nerve . id && Math . random ( ) > 0.75 && Math . random ( ) > ( 1 - ( ( pixel . nutrition + pixel . oxygen + pixel . speed ) / 2050 ) ) ) {
pixel . chargeCD = 16
hitPixel . charge = 0.5
2024-12-27 23:49:11 -05:00
}
2024-12-03 19:43:00 -05:00
}
if ( ! isEmpty ( pixel . x , pixel . y + 1 , true ) ) {
var hitPixel = pixelMap [ pixel . x ] [ pixel . y + 1 ]
2025-01-18 19:19:52 -05:00
doElectricity ( hitPixel ) ;
if ( elements [ hitPixel . element ] . id === elements . nerve . id && Math . random ( ) > 0.75 && Math . random ( ) > ( 1 - ( ( pixel . nutrition + pixel . oxygen + pixel . speed ) / 2050 ) ) ) {
pixel . chargeCD = 16
hitPixel . charge = 0.5
2024-12-27 23:49:11 -05:00
}
}
if ( ! isEmpty ( pixel . x - 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x - 1 ] [ pixel . y ]
2025-01-18 19:19:52 -05:00
doElectricity ( hitPixel ) ;
if ( elements [ hitPixel . element ] . id === elements . nerve . id && Math . random ( ) > 0.75 && Math . random ( ) > ( 1 - ( ( pixel . nutrition + pixel . oxygen + pixel . speed ) / 2050 ) ) ) {
pixel . chargeCD = 16
hitPixel . charge = 0.5
2024-12-27 23:49:11 -05:00
}
2024-12-03 19:43:00 -05:00
}
if ( ! isEmpty ( pixel . x + 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x + 1 ] [ pixel . y ]
2025-01-18 19:19:52 -05:00
doElectricity ( hitPixel ) ;
if ( elements [ hitPixel . element ] . id === elements . nerve . id && Math . random ( ) > 0.75 && Math . random ( ) > ( 1 - ( ( pixel . nutrition + pixel . oxygen + pixel . speed ) / 2050 ) ) ) {
pixel . chargeCD = 16
hitPixel . charge = 0.5
2024-12-27 23:49:11 -05:00
}
2024-12-03 19:43:00 -05:00
}
2025-01-18 19:19:52 -05:00
if ( pixel . charge ) {
pixel . charge = 0 ;
pixel . chargeCD = 16 ;
}
} ,
density : 2710 ,
state : "solid" ,
conduct : 1 ,
tempHigh : 200 ,
stateHigh : "cooked_meat" ,
tempLow : - 25 ,
stateLow : "frozen_meat" ,
burn : 5 ,
burnTime : 350 ,
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" ] ,
forceSaveColor : true ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "steam" , "salt" , "meat" , "rotten_meat" , "cooked_meat" , "flesh" ] , chance : 0.4 } ,
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
speed : 0 ,
poisoned : false ,
immune : false ,
} ,
isBio : true ,
renderer : renderPresets . FLESHBURN ,
movable : false ,
}
elements . amygdala = { // please please please ignore that i callled it the amygdala imstupid and trided to fix it IM SORGYRY
color : [ "#B33E93" , "#B33E93" , "#f5ced5" , "#e87b8f" ] ,
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 ) {
doDefaults ( pixel ) ;
doBioNorm ( pixel ) ;
if ( pixel . temp > 25 ) { pixel . temp -= 10 ; }
else if ( pixel . temp < 15 ) { pixel . temp += 10 ; }
if ( pixel . charge ) {
pixel . charge = 0 ;
pixel . chargeCD = 16 ;
}
2024-12-03 19:43:00 -05:00
} ,
density : 2710 ,
state : "solid" ,
2025-01-18 19:19:52 -05:00
conduct : 1 ,
2024-12-03 19:43:00 -05:00
tempHigh : 200 ,
stateHigh : "cooked_meat" ,
tempLow : - 25 ,
stateLow : "frozen_meat" ,
2024-12-26 19:51:40 -05:00
burn : 5 ,
burnTime : 350 ,
2024-12-03 19:43:00 -05:00
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" ] ,
forceSaveColor : true ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
2025-01-18 19:19:52 -05:00
"radiation" : { elem1 : [ "ash" , "steam" , "salt" , "ash" , "steam" , "salt" , "meat" , "rotten_meat" , "cooked_meat" , "flesh" ] , chance : 0.4 } ,
2024-12-03 19:43:00 -05:00
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
2024-12-12 15:47:06 -05:00
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-12-03 19:43:00 -05:00
} ,
2025-01-18 19:19:52 -05:00
isBio : true ,
renderer : renderPresets . FLESHBURN ,
2024-12-03 19:43:00 -05:00
movable : false ,
}
2025-01-18 19:19:52 -05:00
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 ) {
2024-12-10 19:53:59 -05:00
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
2024-12-03 19:43:00 -05:00
} ,
tick : function ( pixel ) {
2025-01-02 22:06:28 -05:00
doDefaults ( pixel ) ;
2025-01-18 19:19:52 -05:00
doBioNorm ( pixel ) ;
} ,
density : 2710 ,
state : "solid" ,
conduct : 1 ,
tempHigh : 200 ,
stateHigh : "cooked_meat" ,
tempLow : - 25 ,
stateLow : "frozen_meat" ,
burn : 5 ,
burnTime : 350 ,
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" ] ,
forceSaveColor : true ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "steam" , "salt" , "ash" , "steam" , "salt" , "meat" , "rotten_meat" , "cooked_meat" , "flesh" ] , chance : 0.4 } ,
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
speed : 0 ,
poisoned : false ,
immune : false ,
} ,
isBio : true ,
renderer : renderPresets . FLESHBURN ,
movable : false ,
}
elements . throat _lining = {
color : "#bc6157" ,
category : "nutrition" ,
behavior : [
"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|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 ) {
doDefaults ( pixel ) ;
doBioNorm ( pixel ) ;
2024-11-25 23:09:06 -05:00
} ,
density : 2710 ,
state : "solid" ,
2024-12-26 19:51:40 -05:00
conduct : . 001 ,
2025-01-18 19:19:52 -05:00
tempHigh : 200 ,
stateHigh : "cooked_meat" ,
2024-11-25 23:09:06 -05:00
tempLow : - 25 ,
2025-01-18 19:19:52 -05:00
stateLow : "frozen_meat" ,
burn : 5 ,
burnTime : 350 ,
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" ] ,
2024-11-25 23:09:06 -05:00
forceSaveColor : true ,
reactions : {
2025-01-18 19:19:52 -05:00
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "slime" , "meat" , "rotten_meat" , "cooked_meat" , "flesh" ] , chance : 0.4 } ,
2024-11-25 23:09:06 -05:00
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
2024-12-12 15:47:06 -05:00
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2024-11-25 23:09:06 -05:00
} ,
2025-01-02 22:06:28 -05:00
isBio : true ,
2025-01-18 19:19:52 -05:00
renderer : renderPresets . FLESHBURN ,
2024-11-25 23:09:06 -05:00
movable : false ,
}
2025-01-18 19:19:52 -05:00
elements . intestines = {
color : "#bc6157" ,
category : "nutrition" ,
2025-01-02 22:06:28 -05:00
behavior : behaviors . WALL ,
2025-01-18 19:19:52 -05:00
nutrTrans : 10 ,
oxygTrans : 10 ,
isMultiDie : true ,
normDie : "meat" ,
roomDie : "rotten_meat" ,
coldDie : "frozen_meat" ,
heatDie : "cooked_meat" ,
2024-12-27 23:49:11 -05:00
hoverStat : function ( pixel ) {
2024-12-10 19:53:59 -05:00
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
2024-11-26 14:30:30 -05:00
} ,
tick : function ( pixel ) {
2024-12-27 23:49:11 -05:00
doDefaults ( pixel ) ;
2025-01-18 19:19:52 -05:00
doBioNorm ( pixel ) ;
2024-12-27 23:49:11 -05:00
if ( ! isEmpty ( pixel . x , pixel . y - 1 , true ) ) {
2024-11-26 14:30:30 -05:00
var hitPixel = pixelMap [ pixel . x ] [ pixel . y - 1 ]
2025-01-18 19:19:52 -05:00
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
} ;
2024-11-26 14:30:30 -05:00
}
2025-01-18 19:19:52 -05:00
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
} ;
2024-12-27 23:49:11 -05:00
}
2024-11-26 14:30:30 -05:00
}
if ( ! isEmpty ( pixel . x , pixel . y + 1 , true ) ) {
var hitPixel = pixelMap [ pixel . x ] [ pixel . y + 1 ]
2025-01-18 19:19:52 -05:00
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
} ;
2024-11-26 14:30:30 -05:00
}
2025-01-18 19:19:52 -05:00
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
} ;
2024-12-27 23:49:11 -05:00
}
2024-11-26 14:30:30 -05:00
}
if ( ! isEmpty ( pixel . x - 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x - 1 ] [ pixel . y ]
2025-01-18 19:19:52 -05:00
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
} ;
2024-12-27 23:49:11 -05:00
}
2025-01-18 19:19:52 -05:00
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
} ;
2024-11-26 14:30:30 -05:00
}
2025-01-18 19:19:52 -05:00
}
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.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 ] . 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
} ;
2024-12-27 23:49:11 -05:00
}
2024-11-26 14:30:30 -05:00
}
} ,
density : 2710 ,
state : "solid" ,
2024-12-26 19:51:40 -05:00
conduct : . 001 ,
2025-01-18 19:19:52 -05:00
tempHigh : 200 ,
stateHigh : "cooked_meat" ,
2024-11-26 14:30:30 -05:00
tempLow : - 25 ,
2025-01-02 22:06:28 -05:00
stateLow : "frozen_meat" ,
2025-01-18 19:19:52 -05:00
burn : 5 ,
burnTime : 350 ,
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" ] ,
2024-11-26 14:30:30 -05:00
forceSaveColor : true ,
reactions : {
2025-01-18 19:19:52 -05:00
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "steam" , "meat" , "rotten_meat" , "cooked_meat" , "flesh" ] , chance : 0.4 } ,
2024-11-26 14:30:30 -05:00
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
2024-12-12 15:47:06 -05:00
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-11-26 14:30:30 -05:00
} ,
movable : false ,
2025-01-18 19:19:52 -05:00
isBio : true ,
renderer : renderPresets . FLESHBURN ,
2024-11-26 14:30:30 -05:00
}
2025-01-18 19:19:52 -05:00
elements . appendix = {
color : "#B45942" ,
category : "nutrition" ,
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" ,
2024-12-27 23:49:11 -05:00
hoverStat : function ( pixel ) {
2024-12-10 19:53:59 -05:00
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
2024-11-27 23:13:34 -05:00
} ,
tick : function ( pixel ) {
2025-01-18 19:19:52 -05:00
if ( Math . random ( ) < 0.0001 && ( pixel . nutrition < 750 || pixel . oxygen < 500 ) ) {
changePixel ( pixel , "stomach_acid" ) ;
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
doDefaults ( pixel ) ;
doBioNorm ( pixel ) ;
if ( ! isEmpty ( pixel . x , pixel . y - 1 , true ) ) {
2024-11-27 23:13:34 -05:00
var hitPixel = pixelMap [ pixel . x ] [ pixel . y - 1 ]
2025-01-18 19:19:52 -05:00
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
} ;
2024-12-27 23:49:11 -05:00
}
2025-01-18 19:19:52 -05:00
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
} ;
2025-01-02 22:06:28 -05:00
}
}
if ( ! isEmpty ( pixel . x , pixel . y + 1 , true ) ) {
var hitPixel = pixelMap [ pixel . x ] [ pixel . y + 1 ]
2025-01-18 19:19:52 -05:00
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 ] . 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
} ;
2024-11-27 23:13:34 -05:00
}
}
2025-01-02 22:06:28 -05:00
if ( ! isEmpty ( pixel . x - 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x - 1 ] [ pixel . y ]
2025-01-18 19:19:52 -05:00
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
} ;
2025-01-02 22:06:28 -05:00
}
2025-01-18 19:19:52 -05:00
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
} ;
2024-12-27 23:49:11 -05:00
}
2024-11-27 23:13:34 -05:00
}
if ( ! isEmpty ( pixel . x + 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x + 1 ] [ pixel . y ]
2025-01-18 19:19:52 -05:00
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 ] . 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
} ;
2024-11-27 23:13:34 -05:00
}
}
} ,
density : 2710 ,
state : "solid" ,
2024-12-26 19:51:40 -05:00
conduct : . 001 ,
2025-01-02 22:06:28 -05:00
tempHigh : 200 ,
stateHigh : "cooked_meat" ,
2024-11-27 23:13:34 -05:00
tempLow : - 25 ,
stateLow : "frozen_meat" ,
2025-01-02 22:06:28 -05:00
burn : 5 ,
burnTime : 350 ,
burnInto : "cooked_meat" ,
2025-01-18 19:19:52 -05:00
breakInto : [ "stomach_acid" , "blood" , "meat" ] ,
2024-11-27 23:13:34 -05:00
forceSaveColor : true ,
reactions : {
2025-01-02 22:06:28 -05:00
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
2025-01-18 19:19:52 -05:00
"radiation" : { elem1 : [ "ash" , "steam" , "meat" , "rotten_meat" , "cooked_meat" , "flesh" ] , chance : 0.4 } ,
2024-11-27 23:13:34 -05:00
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
2024-12-12 15:47:06 -05:00
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-11-27 23:13:34 -05:00
} ,
movable : false ,
2025-01-18 19:19:52 -05:00
isBio : true ,
renderer : renderPresets . FLESHBURN ,
2024-11-27 23:13:34 -05:00
}
2025-01-18 19:19:52 -05:00
elements . simple _lung = {
color : "#EB85D9" ,
2024-12-27 23:49:11 -05:00
category : "oxygen" ,
2025-01-18 19:19:52 -05:00
behavior : behaviors . WALL ,
nutrTrans : 10 ,
oxygTrans : 15 ,
isMultiDie : true ,
normDie : "meat" ,
roomDie : "rotten_meat" ,
coldDie : "frozen_meat" ,
heatDie : "cooked_meat" ,
2024-12-27 23:49:11 -05:00
hoverStat : function ( pixel ) {
2024-12-10 19:53:59 -05:00
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
2024-11-27 23:13:34 -05:00
} ,
tick : function ( pixel ) {
2025-01-18 19:19:52 -05:00
for ( var i = 0 ; i < squareCoords . length ; i ++ ) {
var x = pixel . x + squareCoords [ i ] [ 0 ] ;
var y = pixel . y + squareCoords [ i ] [ 1 ] ;
if ( isEmpty ( x , y ) ) {
if ( Math . random ( ) < 0.01 ) { pixel . oxygen += 100 }
break
}
}
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 . 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 -= 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 . 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 -= 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 . 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 -= 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 . 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 -= 250
pixel . nutrition -= 250
pixel . speed -= 25
2024-11-27 23:13:34 -05:00
}
}
} ,
density : 2710 ,
state : "solid" ,
2024-12-26 19:51:40 -05:00
conduct : . 001 ,
2024-11-27 23:13:34 -05:00
tempHigh : 200 ,
stateHigh : "cooked_meat" ,
tempLow : - 25 ,
stateLow : "frozen_meat" ,
2024-12-26 19:51:40 -05:00
burn : 5 ,
burnTime : 350 ,
2024-11-27 23:13:34 -05:00
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" ] ,
forceSaveColor : true ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
2025-01-18 19:19:52 -05:00
"radiation" : { elem1 : [ "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 } ,
2024-11-27 23:13:34 -05:00
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
2024-12-12 15:47:06 -05:00
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-11-27 23:13:34 -05:00
} ,
movable : false ,
2025-01-18 19:19:52 -05:00
isBio : true ,
renderer : renderPresets . FLESHBURN ,
2024-11-27 23:13:34 -05:00
}
2025-01-18 19:19:52 -05:00
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 ) {
2024-12-10 19:53:59 -05:00
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
2024-11-25 23:09:06 -05:00
} ,
tick : function ( pixel ) {
2025-01-18 19:19:52 -05:00
doDefaults ( pixel ) ;
doBioNorm ( pixel ) ;
if ( ! isEmpty ( pixel . x , pixel . y - 1 , true ) ) {
2024-11-25 23:09:06 -05:00
var hitPixel = pixelMap [ pixel . x ] [ pixel . y - 1 ]
2025-01-18 19:19:52 -05:00
if ( elements [ hitPixel . element ] . id === elements . oxygen . id && Math . random ( ) > 0.9 ) {
if ( Math . random ( ) > 0.75 ) {
changePixel ( hitPixel , "carbon_dioxide" ) ;
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . oxygen += 100
}
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 ) {
deletePixel ( hitPixel . x , hitPixel . y )
pixel . oxygen -= 250
pixel . nutrition -= 250
pixel . speed -= 25
2024-11-25 23:09:06 -05:00
}
}
if ( ! isEmpty ( pixel . x , pixel . y + 1 , true ) ) {
var hitPixel = pixelMap [ pixel . x ] [ pixel . y + 1 ]
2025-01-18 19:19:52 -05:00
if ( elements [ hitPixel . element ] . id === elements . oxygen . id && Math . random ( ) > 0.9 ) {
if ( Math . random ( ) > 0.75 ) {
changePixel ( hitPixel , "carbon_dioxide" ) ;
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . oxygen += 100
}
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 ) {
deletePixel ( hitPixel . x , hitPixel . y )
pixel . oxygen -= 250
pixel . nutrition -= 250
pixel . speed -= 25
2024-11-25 23:09:06 -05:00
}
}
if ( ! isEmpty ( pixel . x - 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x - 1 ] [ pixel . y ]
2025-01-18 19:19:52 -05:00
if ( elements [ hitPixel . element ] . id === elements . oxygen . id && Math . random ( ) > 0.9 ) {
if ( Math . random ( ) > 0.75 ) {
changePixel ( hitPixel , "carbon_dioxide" ) ;
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . oxygen += 100
}
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 ) {
deletePixel ( hitPixel . x , hitPixel . y )
pixel . oxygen -= 250
pixel . nutrition -= 250
pixel . speed -= 25
2024-11-25 23:09:06 -05:00
}
}
if ( ! isEmpty ( pixel . x + 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x + 1 ] [ pixel . y ]
2025-01-18 19:19:52 -05:00
if ( elements [ hitPixel . element ] . id === elements . oxygen . id && Math . random ( ) > 0.9 ) {
if ( Math . random ( ) > 0.75 ) {
changePixel ( hitPixel , "carbon_dioxide" ) ;
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . oxygen += 100
}
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 ) {
deletePixel ( hitPixel . x , hitPixel . y )
pixel . oxygen -= 250
pixel . nutrition -= 250
pixel . speed -= 25
2024-11-25 23:09:06 -05:00
}
}
} ,
density : 2710 ,
state : "solid" ,
2024-12-26 19:51:40 -05:00
conduct : . 001 ,
2024-11-25 23:09:06 -05:00
tempHigh : 200 ,
stateHigh : "cooked_meat" ,
tempLow : - 25 ,
stateLow : "frozen_meat" ,
2024-12-26 19:51:40 -05:00
burn : 5 ,
burnTime : 350 ,
2024-11-25 23:09:06 -05:00
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" ] ,
forceSaveColor : true ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
2025-01-18 19:19:52 -05:00
"radiation" : { elem1 : [ "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 } ,
2024-11-25 23:09:06 -05:00
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
2024-12-12 15:47:06 -05:00
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-11-25 23:09:06 -05:00
} ,
movable : false ,
2025-01-18 19:19:52 -05:00
isBio : true ,
renderer : renderPresets . FLESHBURN ,
2024-11-25 23:09:06 -05:00
}
2025-01-18 19:19:52 -05:00
elements . amphib _skin = {
color : "#7E9C33" ,
category : "oxygen" ,
2024-12-27 23:49:11 -05:00
behavior : [
2025-01-18 19:19:52 -05:00
"XX|CR:slime%0.001|XX" ,
"CR:slime%0.001|XX|CR:slime%0.001" ,
"XX|CR:slime%0.001|XX" ,
2024-12-27 23:49:11 -05:00
] ,
2025-01-18 19:19:52 -05:00
nutrTrans : 10 ,
oxygTrans : 15 ,
isMultiDie : true ,
normDie : "meat" ,
roomDie : "rotten_meat" ,
coldDie : "frozen_meat" ,
heatDie : "cooked_meat" ,
hoverStat : function ( pixel ) {
2024-12-10 19:53:59 -05:00
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
2024-11-25 23:09:06 -05:00
} ,
tick : function ( pixel ) {
2025-01-18 19:19:52 -05:00
if ( ( pixel . temp > 35 || pixel . temp < 10 ) && Math . random ( ) < 0.005 ) {
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 ) ) {
if ( pixel . temp > 35 ) {
pixel . temp -= 20 ;
if ( Math . random ( ) < 0.01 ) {
createPixel ( "slime" , x , y ) ;
}
break ;
}
pixel . temp += 20 ;
break ;
2024-12-26 19:51:40 -05:00
}
2024-12-03 19:43:00 -05:00
}
2024-11-25 23:09:06 -05:00
}
2025-01-18 19:19:52 -05:00
if ( pixel . temp < 15 && Math . random ( ) < 0.1 ) {
pixel . temp += 1 ;
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
doDefaults ( pixel ) ;
doBioNorm ( pixel ) ;
if ( ! isEmpty ( pixel . x , pixel . y - 1 , true ) ) {
2024-11-25 23:09:06 -05:00
var hitPixel = pixelMap [ pixel . x ] [ pixel . y - 1 ]
2025-01-18 19:19:52 -05:00
if ( elements [ hitPixel . element ] . id === elements . oxygen . id && Math . random ( ) > 0.9 ) {
if ( Math . random ( ) > 0.75 ) {
changePixel ( hitPixel , "carbon_dioxide" ) ;
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . oxygen += 100
}
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 ) {
deletePixel ( hitPixel . x , hitPixel . y )
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.9 ) {
if ( Math . random ( ) > 0.75 ) {
changePixel ( hitPixel , "carbon_dioxide" ) ;
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . oxygen += 100
}
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 ) {
deletePixel ( hitPixel . x , hitPixel . y )
pixel . oxygen -= 250
pixel . nutrition -= 250
pixel . speed -= 25
2024-12-03 19:43:00 -05:00
}
}
if ( ! isEmpty ( pixel . x - 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x - 1 ] [ pixel . y ]
2025-01-18 19:19:52 -05:00
if ( elements [ hitPixel . element ] . id === elements . oxygen . id && Math . random ( ) > 0.9 ) {
if ( Math . random ( ) > 0.75 ) {
changePixel ( hitPixel , "carbon_dioxide" ) ;
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . oxygen += 100
}
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 ) {
deletePixel ( hitPixel . x , hitPixel . y )
pixel . oxygen -= 250
pixel . nutrition -= 250
pixel . speed -= 25
2024-12-03 19:43:00 -05:00
}
}
if ( ! isEmpty ( pixel . x + 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x + 1 ] [ pixel . y ]
2025-01-18 19:19:52 -05:00
if ( elements [ hitPixel . element ] . id === elements . oxygen . id && Math . random ( ) > 0.9 ) {
if ( Math . random ( ) > 0.75 ) {
changePixel ( hitPixel , "carbon_dioxide" ) ;
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . oxygen += 100
}
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 ) {
deletePixel ( hitPixel . x , hitPixel . y )
pixel . oxygen -= 250
pixel . nutrition -= 250
pixel . speed -= 25
2024-12-03 19:43:00 -05:00
}
}
} ,
density : 2710 ,
state : "solid" ,
2024-12-26 19:51:40 -05:00
conduct : . 001 ,
2025-01-18 19:19:52 -05:00
tempHigh : 220 ,
stateHigh : [ "cooked_meat" , "slime" ] ,
2024-12-03 19:43:00 -05:00
tempLow : - 25 ,
2025-01-18 19:19:52 -05:00
stateLow : [ "frozen_meat" , "slime_ice" , "slime_ice" ] ,
breakInto : [ "blood" , "meat" , "slime" , "slime" ] ,
2024-12-03 19:43:00 -05:00
forceSaveColor : true ,
reactions : {
2025-01-18 19:19:52 -05:00
"cancer" : { elem1 : "cancer" , chance : 0.000075 } ,
"radiation" : { elem1 : [ "slime" , "slime" , "ash" , "meat" , "rotten_meat" , "cooked_meat" , "skin" , "epidermis" ] , chance : 0.1 } ,
2024-12-03 19:43:00 -05:00
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
2024-12-12 15:47:06 -05:00
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-12-03 19:43:00 -05:00
} ,
2025-01-18 19:19:52 -05:00
isBio : true ,
renderer : renderPresets . FLESHBURN ,
2024-12-03 19:43:00 -05:00
movable : false ,
2025-01-18 19:19:52 -05:00
burn : 5 ,
burnTime : 100 ,
burnInto : [ "cooked_meat" , "calcium" , "calcium" , "cooked_meat" , "calcium" , "calcium" , "quicklime" ] ,
2024-12-03 19:43:00 -05:00
}
2025-01-18 19:19:52 -05:00
elements . exoskeleton = {
color : [ "#453a2e" , "#241d15" , "#242e23" ] ,
category : "oxygen" ,
behavior : behaviors . WALL ,
nutrTrans : 10 ,
oxygTrans : 15 ,
isMultiDie : false ,
normDie : "dust" ,
otherDie : "calcium" ,
hoverStat : function ( pixel ) {
2024-12-10 19:53:59 -05:00
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
2024-12-03 19:43:00 -05:00
} ,
tick : function ( pixel ) {
2025-01-18 19:19:52 -05:00
if ( pixel . temp > 40 && Math . random ( ) < 0.1 ) {
pixel . temp -= 1 ;
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
doDefaults ( pixel ) ;
doBioNorm ( pixel ) ;
if ( ! isEmpty ( pixel . x , pixel . y - 1 , true ) ) {
2024-12-03 19:43:00 -05:00
var hitPixel = pixelMap [ pixel . x ] [ pixel . y - 1 ]
2025-01-18 19:19:52 -05:00
if ( elements [ hitPixel . element ] . id === elements . oxygen . id && Math . random ( ) > 0.9 ) {
if ( Math . random ( ) > 0.75 ) {
changePixel ( hitPixel , "carbon_dioxide" ) ;
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . oxygen += 100
}
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 ) {
deletePixel ( hitPixel . x , hitPixel . y )
pixel . oxygen -= 250
pixel . nutrition -= 250
pixel . speed -= 25
2024-12-03 19:43:00 -05:00
}
}
if ( ! isEmpty ( pixel . x , pixel . y + 1 , true ) ) {
var hitPixel = pixelMap [ pixel . x ] [ pixel . y + 1 ]
2025-01-18 19:19:52 -05:00
if ( elements [ hitPixel . element ] . id === elements . oxygen . id && Math . random ( ) > 0.9 ) {
if ( Math . random ( ) > 0.75 ) {
changePixel ( hitPixel , "carbon_dioxide" ) ;
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . oxygen += 100
}
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 ) {
deletePixel ( hitPixel . x , hitPixel . y )
pixel . oxygen -= 250
pixel . nutrition -= 250
pixel . speed -= 25
2024-12-03 19:43:00 -05:00
}
}
if ( ! isEmpty ( pixel . x - 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x - 1 ] [ pixel . y ]
2025-01-18 19:19:52 -05:00
if ( elements [ hitPixel . element ] . id === elements . oxygen . id && Math . random ( ) > 0.9 ) {
if ( Math . random ( ) > 0.75 ) {
changePixel ( hitPixel , "carbon_dioxide" ) ;
2024-12-03 19:43:00 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . oxygen += 100
}
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 ) {
deletePixel ( hitPixel . x , hitPixel . y )
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.9 ) {
if ( Math . random ( ) > 0.75 ) {
changePixel ( hitPixel , "carbon_dioxide" ) ;
2024-12-27 23:49:11 -05:00
}
2025-01-18 19:19:52 -05:00
pixel . oxygen += 100
}
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 ) {
deletePixel ( hitPixel . x , hitPixel . y )
pixel . oxygen -= 250
pixel . nutrition -= 250
pixel . speed -= 25
}
}
} ,
density : 2710 ,
state : "solid" ,
conduct : . 001 ,
tempHigh : 220 ,
stateHigh : [ "cooked_meat" , "calcium" , "calcium" ] ,
tempLow : - 25 ,
stateLow : "frozen_meat" ,
breakInto : [ "blood" , "meat" , "calcium" ] ,
forceSaveColor : true ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.000075 } ,
"radiation" : { elem1 : [ "calcium" , "calcium" , "ash" , "meat" , "rotten_meat" , "cooked_meat" , "skin" , "epidermis" ] , chance : 0.1 } ,
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
speed : 0 ,
poisoned : false ,
immune : false ,
} ,
isBio : true ,
renderer : renderPresets . FLESHBURN ,
movable : false ,
burn : 5 ,
burnTime : 100 ,
burnInto : [ "cooked_meat" , "calcium" , "calcium" , "cooked_meat" , "calcium" , "calcium" , "quicklime" ] ,
}
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 ) {
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 . 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 ] )
}
2024-12-03 19:43:00 -05:00
}
2025-01-18 19:19:52 -05:00
}
else if ( elements [ hitPixel . element ] . id === elements . water . id && Math . random ( ) > 0.75 ) {
pixel . oxygen += 100
if ( Math . random ( ) > 0.75 ) {
changePixel ( hitPixel , "deoxygenated_water" )
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
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 ] )
}
2025-01-12 21:16:03 -05:00
}
2024-12-03 19:43:00 -05:00
}
2025-01-18 19:19:52 -05:00
else if ( elements [ hitPixel . element ] . id === elements . salt _water . id && Math . random ( ) > 0.75 ) {
pixel . oxygen += 90
if ( Math . random ( ) > 0.85 ) {
changePixel ( hitPixel , "deoxygenated_water" )
2024-12-03 19:43:00 -05:00
}
2025-01-18 19:19:52 -05:00
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 ] )
}
2024-12-03 19:43:00 -05:00
}
2025-01-18 19:19:52 -05:00
}
}
if ( ! isEmpty ( pixel . x - 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x - 1 ] [ pixel . y ]
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 ) ;
2024-12-03 19:43:00 -05:00
}
2025-01-18 19:19:52 -05:00
}
else if ( elements [ hitPixel . element ] . id === elements . water . id && Math . random ( ) > 0.75 ) {
if ( isEmpty ( pixel . x + 1 , pixel . y ) ) {
pixel . oxygen += 100
if ( Math . random ( ) > 0.75 ) {
changePixel ( hitPixel , "deoxygenated_water" )
}
tryMove ( hitPixel , pixel . x + 1 , pixel . y ) ;
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
}
else if ( elements [ hitPixel . element ] . id === elements . salt _water . id && Math . random ( ) > 0.75 ) {
if ( isEmpty ( pixel . x + 1 , pixel . y ) ) {
pixel . oxygen += 90
if ( Math . random ( ) > 0.85 ) {
changePixel ( hitPixel , "deoxygenated_water" )
}
tryMove ( hitPixel , pixel . x + 1 , pixel . y ) ;
2025-01-12 21:16:03 -05:00
}
2024-12-03 19:43:00 -05:00
}
}
} ,
2024-12-27 23:49:11 -05:00
density : 2710 ,
state : "solid" ,
conduct : . 001 ,
tempHigh : 200 ,
stateHigh : "cooked_meat" ,
tempLow : - 25 ,
stateLow : "frozen_meat" ,
burn : 5 ,
burnTime : 350 ,
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" ] ,
forceSaveColor : true ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
2025-01-18 19:19:52 -05:00
"radiation" : { elem1 : [ "ash" , "steam" , "oxygen" , "meat" , "rotten_meat" , "cooked_meat" , "flesh" ] , chance : 0.4 } ,
2024-12-27 23:49:11 -05:00
} ,
properties : {
2024-12-03 19:43:00 -05:00
oxygen : 1000 ,
nutrition : 1000 ,
2024-12-12 15:47:06 -05:00
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-12-03 19:43:00 -05:00
} ,
movable : false ,
2025-01-18 19:19:52 -05:00
isBio : true ,
renderer : renderPresets . FLESHBURN ,
2024-12-03 19:43:00 -05:00
}
2025-01-18 19:19:52 -05:00
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 ) {
2024-12-10 19:53:59 -05:00
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
2024-12-03 19:43:00 -05:00
} ,
tick : function ( pixel ) {
2025-01-18 19:19:52 -05:00
doDefaults ( pixel ) ;
doBioNorm ( pixel ) ;
2024-12-03 19:43:00 -05:00
if ( ! isEmpty ( pixel . x , pixel . y - 1 , true ) ) {
var hitPixel = pixelMap [ pixel . x ] [ pixel . y - 1 ]
2025-01-18 19:19:52 -05:00
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 ] )
}
2025-01-12 21:16:03 -05:00
}
2024-12-03 19:43:00 -05:00
}
2025-01-18 19:19:52 -05:00
else if ( elements [ hitPixel . element ] . id === elements . water . id && Math . random ( ) > 0.75 ) {
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 ] )
}
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
}
else if ( elements [ hitPixel . element ] . id === elements . salt _water . id && Math . random ( ) > 0.75 ) {
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 ] )
}
2025-01-12 21:16:03 -05:00
}
2024-11-25 23:09:06 -05:00
}
}
if ( ! isEmpty ( pixel . x - 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x - 1 ] [ pixel . y ]
2025-01-18 19:19:52 -05:00
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 ) ;
2025-01-12 21:16:03 -05:00
}
2024-11-25 23:09:06 -05:00
}
2025-01-18 19:19:52 -05:00
else if ( elements [ hitPixel . element ] . id === elements . water . id && Math . random ( ) > 0.75 ) {
if ( isEmpty ( pixel . x + 1 , pixel . y ) ) {
pixel . oxygen += 50
tryMove ( hitPixel , pixel . x + 1 , pixel . y ) ;
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
}
else if ( elements [ hitPixel . element ] . id === elements . salt _water . id && Math . random ( ) > 0.75 ) {
if ( isEmpty ( pixel . x + 1 , pixel . y ) ) {
pixel . oxygen += 50
tryMove ( hitPixel , pixel . x + 1 , pixel . y ) ;
2025-01-12 21:16:03 -05:00
}
2024-11-25 23:09:06 -05:00
}
}
2025-01-18 19:19:52 -05:00
} ,
density : 2710 ,
state : "solid" ,
conduct : . 001 ,
tempHigh : 200 ,
stateHigh : "cooked_meat" ,
tempLow : - 25 ,
stateLow : "frozen_meat" ,
burn : 5 ,
burnTime : 350 ,
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" ] ,
forceSaveColor : true ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "steam" , "oxygen" , "meat" , "rotten_meat" , "cooked_meat" , "flesh" ] , chance : 0.4 } ,
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
speed : 0 ,
poisoned : false ,
immune : false ,
} ,
movable : false ,
isBio : true ,
renderer : renderPresets . FLESHBURN ,
}
elements . stomach _lining = {
color : "#be5c4b" ,
category : "nutrition" ,
behavior : [
"XX|CR:stomach_acid%1|XX" ,
"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 ) {
doDefaults ( pixel ) ;
doBioNorm ( pixel ) ;
} ,
density : 2710 ,
state : "solid" ,
conduct : . 001 ,
tempHigh : 200 ,
stateHigh : "cooked_meat" ,
tempLow : - 25 ,
stateLow : "frozen_meat" ,
burn : 5 ,
burnTime : 350 ,
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" ] ,
forceSaveColor : true ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "steam" , "meat" , "rotten_meat" , "cooked_meat" , "flesh" ] , chance : 0.4 } ,
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
speed : 0 ,
poisoned : false ,
immune : false ,
} ,
movable : false ,
isBio : true ,
renderer : renderPresets . FLESHBURN ,
}
elements . decomposer _stomach = {
color : "#A4593F" ,
category : "nutrition" ,
behavior : [
"XX|CR:decomposer_acid%5|XX" ,
"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 ) {
2025-01-02 22:06:28 -05:00
doDefaults ( pixel ) ;
2025-01-18 19:19:52 -05:00
doBioNorm ( pixel ) ;
2024-11-25 23:09:06 -05:00
} ,
2024-12-27 23:49:11 -05:00
density : 2710 ,
state : "solid" ,
conduct : . 001 ,
tempHigh : 200 ,
stateHigh : "cooked_meat" ,
tempLow : - 25 ,
stateLow : "frozen_meat" ,
burn : 5 ,
burnTime : 350 ,
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" ] ,
forceSaveColor : true ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "steam" , "meat" , "rotten_meat" , "cooked_meat" , "flesh" ] , chance : 0.4 } ,
} ,
properties : {
2024-11-25 23:09:06 -05:00
oxygen : 1000 ,
nutrition : 1000 ,
2024-12-12 15:47:06 -05:00
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-11-25 23:09:06 -05:00
} ,
movable : false ,
2025-01-18 19:19:52 -05:00
isBio : true ,
renderer : renderPresets . FLESHBURN ,
2024-12-11 12:04:41 -05:00
}
2025-01-18 19:19:52 -05:00
elements . herbi _stomach = {
color : "#B77A3D" ,
2024-12-27 23:49:11 -05:00
category : "nutrition" ,
2024-11-27 23:13:34 -05:00
behavior : [
2025-01-18 19:19:52 -05:00
"XX|CR:herbi_acid%5|XX" ,
"CR:herbi_acid%5|XX|CR:herbi_acid%5" ,
"XX|CR:herbi_acid%5|XX" ,
2024-11-27 23:13:34 -05:00
] ,
2025-01-18 19:19:52 -05:00
nutrTrans : 10 ,
oxygTrans : 10 ,
isMultiDie : true ,
normDie : "meat" ,
roomDie : "rotten_meat" ,
coldDie : "frozen_meat" ,
heatDie : "cooked_meat" ,
2024-12-27 23:49:11 -05:00
hoverStat : function ( pixel ) {
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
2024-11-25 23:09:06 -05:00
} ,
2024-12-27 23:49:11 -05:00
tick : function ( pixel ) {
2025-01-02 22:06:28 -05:00
doDefaults ( pixel ) ;
2025-01-18 19:19:52 -05:00
doBioNorm ( pixel ) ;
2024-12-12 15:47:06 -05:00
} ,
2024-12-27 23:49:11 -05:00
density : 2710 ,
state : "solid" ,
conduct : . 001 ,
tempHigh : 200 ,
stateHigh : "cooked_meat" ,
tempLow : - 25 ,
stateLow : "frozen_meat" ,
2024-12-12 15:47:06 -05:00
burn : 5 ,
2024-12-27 23:49:11 -05:00
burnTime : 350 ,
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" ] ,
forceSaveColor : true ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "steam" , "meat" , "rotten_meat" , "cooked_meat" , "flesh" ] , chance : 0.4 } ,
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-11-28 14:00:55 -05:00
} ,
2024-12-27 23:49:11 -05:00
movable : false ,
2025-01-18 19:19:52 -05:00
isBio : true ,
renderer : renderPresets . FLESHBURN ,
2024-11-28 14:00:55 -05:00
}
2025-01-18 19:19:52 -05:00
elements . carni _stomach = {
color : "#8E2A3E" ,
2024-12-27 23:49:11 -05:00
category : "nutrition" ,
2024-11-25 23:09:06 -05:00
behavior : [
2025-01-18 19:19:52 -05:00
"XX|CR:carni_acid%5|XX" ,
"CR:carni_acid%5|XX|CR:carni_acid%5" ,
"XX|CR:carni_acid%5|XX" ,
2024-11-25 23:09:06 -05:00
] ,
2025-01-18 19:19:52 -05:00
nutrTrans : 10 ,
oxygTrans : 10 ,
isMultiDie : true ,
normDie : "meat" ,
roomDie : "rotten_meat" ,
coldDie : "frozen_meat" ,
heatDie : "cooked_meat" ,
hoverStat : function ( pixel ) {
2024-12-27 23:49:11 -05:00
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
} ,
tick : function ( pixel ) {
2025-01-18 19:19:52 -05:00
doDefaults ( pixel ) ;
doBioNorm ( pixel ) ;
} ,
density : 2710 ,
state : "solid" ,
conduct : . 001 ,
tempHigh : 200 ,
stateHigh : "cooked_meat" ,
tempLow : - 25 ,
stateLow : "frozen_meat" ,
burn : 5 ,
burnTime : 350 ,
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" ] ,
forceSaveColor : true ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "steam" , "meat" , "rotten_meat" , "cooked_meat" , "flesh" ] , chance : 0.4 } ,
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
speed : 0 ,
poisoned : false ,
immune : false ,
} ,
movable : false ,
isBio : true ,
renderer : renderPresets . FLESHBURN ,
}
elements . explosive _stomach = {
color : "#AA9167" ,
category : "nutrition" ,
behavior : [
"XX|CR:explosive_acid%5|XX" ,
"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 ) {
doDefaults ( pixel ) ;
doBioNorm ( pixel ) ;
} ,
density : 2710 ,
state : "solid" ,
conduct : . 001 ,
tempHigh : 200 ,
stateHigh : "cooked_meat" ,
tempLow : - 25 ,
stateLow : "frozen_meat" ,
burn : 5 ,
burnTime : 350 ,
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" ] ,
forceSaveColor : true ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "steam" , "meat" , "rotten_meat" , "cooked_meat" , "flesh" ] , chance : 0.4 } ,
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
speed : 0 ,
poisoned : false ,
immune : false ,
} ,
movable : false ,
isBio : true ,
renderer : renderPresets . FLESHBURN ,
}
elements . stomach _valve = {
color : "#c8846f" ,
category : "nutrition" ,
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 ) {
doDefaults ( pixel ) ;
doBioNorm ( pixel ) ;
2024-12-27 23:49:11 -05:00
if ( ! isEmpty ( pixel . x , pixel . y - 1 , true ) ) {
var hitPixel = pixelMap [ pixel . x ] [ pixel . y - 1 ]
2025-01-19 00:55:35 -05:00
if ( elements [ hitPixel . element ] . movable == true && elements [ hitPixel . element ] . isAcid != true && Math . random ( ) > 0.75 ) {
2024-12-27 23:49:11 -05:00
if ( isEmpty ( pixel . x , pixel . y + 1 ) ) {
tryMove ( hitPixel , pixel . x , pixel . y + 1 ) ;
}
}
}
} ,
density : 2710 ,
state : "solid" ,
conduct : . 001 ,
tempHigh : 200 ,
stateHigh : "cooked_meat" ,
tempLow : - 25 ,
stateLow : "frozen_meat" ,
burn : 5 ,
burnTime : 350 ,
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" ] ,
forceSaveColor : true ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "steam" , "meat" , "rotten_meat" , "cooked_meat" , "flesh" ] , chance : 0.4 } ,
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2024-12-27 23:49:11 -05:00
} ,
movable : false ,
2025-01-18 19:19:52 -05:00
isBio : true ,
renderer : renderPresets . FLESHBURN ,
2024-12-27 23:49:11 -05:00
}
elements . sphincter = {
color : "#c8846f" ,
category : "nutrition" ,
2025-01-18 19:19:52 -05:00
nutrTrans : 10 ,
oxygTrans : 10 ,
isMultiDie : true ,
normDie : "meat" ,
roomDie : "rotten_meat" ,
coldDie : "frozen_meat" ,
heatDie : "cooked_meat" ,
2024-12-27 23:49:11 -05:00
hoverStat : function ( pixel ) {
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
} ,
tick : function ( pixel ) {
2025-01-18 19:19:52 -05:00
doDefaults ( pixel ) ;
doBioNorm ( pixel ) ;
2024-12-27 23:49:11 -05:00
if ( ! isEmpty ( pixel . x , pixel . y - 1 , true ) ) {
var hitPixel = pixelMap [ pixel . x ] [ pixel . y - 1 ]
2025-01-18 19:19:52 -05:00
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 ) {
2024-12-27 23:49:11 -05:00
if ( elements [ hitPixel . element ] . id === elements . poop . id ) {
changePixel ( hitPixel , "excreted_poop" ) ;
}
if ( isEmpty ( pixel . x , pixel . y + 1 ) ) {
tryMove ( hitPixel , pixel . x , pixel . y + 1 ) ;
}
}
}
} ,
density : 2710 ,
state : "solid" ,
conduct : . 001 ,
tempHigh : 200 ,
stateHigh : "cooked_meat" ,
tempLow : - 25 ,
stateLow : "frozen_meat" ,
burn : 5 ,
burnTime : 350 ,
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" ] ,
forceSaveColor : true ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "steam" , "poop" , "meat" , "rotten_meat" , "cooked_meat" , "flesh" ] , chance : 0.4 } ,
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-12-27 23:49:11 -05:00
} ,
movable : false ,
2025-01-18 19:19:52 -05:00
isBio : true ,
renderer : renderPresets . FLESHBURN ,
2024-12-27 23:49:11 -05:00
}
elements . real _udder = {
color : "#ecb3f5" ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"XX|XX|XX" ,
] ,
2025-01-18 19:19:52 -05:00
nutrTrans : 10 ,
oxygTrans : 10 ,
isMultiDie : true ,
normDie : "meat" ,
roomDie : "rotten_meat" ,
coldDie : "frozen_meat" ,
heatDie : "cooked_meat" ,
2024-12-27 23:49:11 -05:00
hoverStat : function ( pixel ) {
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
} ,
2025-01-18 19:19:52 -05:00
tick : function ( pixel ) {
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 ) ) ) {
2024-12-27 23:49:11 -05:00
if ( Math . random ( ) > 0.95 ) {
if ( Math . random ( ) > 0.95 ) {
pixel . nutrition -= 25
}
createPixel ( "milk" , pixel . x , pixel . y - 1 )
}
}
2025-01-18 19:19:52 -05:00
if ( isEmpty ( pixel . x , pixel . y + 1 ) && Math . random ( ) > 0.95 && Math . random ( ) > ( 1 - ( ( pixel . nutrition + pixel . oxygen + pixel . speed ) / 2050 ) ) ) {
2024-12-27 23:49:11 -05:00
if ( Math . random ( ) > 0.95 ) {
if ( Math . random ( ) > 0.95 ) {
pixel . nutrition -= 25
}
createPixel ( "milk" , pixel . x , pixel . y + 1 )
}
}
2025-01-18 19:19:52 -05:00
if ( isEmpty ( pixel . x - 1 , pixel . y ) && Math . random ( ) > 0.95 && Math . random ( ) > ( 1 - ( ( pixel . nutrition + pixel . oxygen + pixel . speed ) / 2050 ) ) ) {
2024-12-27 23:49:11 -05:00
if ( Math . random ( ) > 0.95 ) {
if ( Math . random ( ) > 0.95 ) {
pixel . nutrition -= 20
}
createPixel ( "milk" , pixel . x - 1 , pixel . y )
}
}
2025-01-18 19:19:52 -05:00
if ( isEmpty ( pixel . x + 1 , pixel . y ) && Math . random ( ) > 0.95 && Math . random ( ) > ( 1 - ( ( pixel . nutrition + pixel . oxygen + pixel . speed ) / 2050 ) ) ) {
2024-12-27 23:49:11 -05:00
if ( Math . random ( ) > 0.95 ) {
if ( Math . random ( ) > 0.95 ) {
pixel . nutrition -= 20
}
createPixel ( "milk" , pixel . x + 1 , pixel . y )
}
}
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-12-27 23:49:11 -05:00
} ,
tempHigh : 175 ,
stateHigh : "meat" ,
tempLow : - 50 ,
stateLow : "frozen_meat" ,
burn : 20 ,
burnTime : 160 ,
burnInto : "meat" ,
breakInto : [ "meat" , "meat" , "meat" , "milk" ] ,
category : "structural" ,
state : "solid" ,
density : 1250 ,
conduct : . 001 ,
movable : false ,
isBio : true ,
2025-01-18 19:19:52 -05:00
renderer : renderPresets . FLESHBURN ,
2024-12-27 23:49:11 -05:00
}
elements . biotorch = {
color : [ "#856559" , "#7F6057" , "#815C50" ] ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"XX|XX|XX" ,
] ,
2025-01-18 19:19:52 -05:00
nutrTrans : 10 ,
oxygTrans : 10 ,
isMultiDie : true ,
normDie : "cooked_meat" ,
roomDie : "cooked_meat" ,
coldDie : "meat" ,
heatDie : "cooked_meat" ,
2024-12-27 23:49:11 -05:00
hoverStat : function ( pixel ) {
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
} ,
tick : function ( pixel ) {
2025-01-18 19:19:52 -05:00
doDefaults ( pixel ) ;
doBioNorm ( pixel ) ;
2024-12-27 23:49:11 -05:00
if ( ! isEmpty ( pixel . x , pixel . y - 1 , true ) ) {
var hitPixel = pixelMap [ pixel . x ] [ pixel . y - 1 ]
2025-01-18 19:19:52 -05:00
if ( elements [ hitPixel . element ] . isBio != true && Math . random ( ) > 0.5 ) {
if ( hitPixel . temp < pixel . temp ) {
hitPixel . temp ++
pixel . temp --
2025-01-12 21:16:03 -05:00
}
2025-01-18 19:19:52 -05:00
if ( hitPixel . temp > pixel . temp ) {
hitPixel . temp --
pixel . temp ++
2025-01-12 21:16:03 -05:00
}
2024-12-27 23:49:11 -05:00
}
}
else 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 ) {
pixel . oxygen -= 5
}
createPixel ( "fire" , pixel . x , pixel . y - 1 )
}
if ( ! isEmpty ( pixel . x , pixel . y + 1 , true ) ) {
var hitPixel = pixelMap [ pixel . x ] [ pixel . y + 1 ]
2025-01-02 22:06:28 -05:00
if ( elements [ hitPixel . element ] . isBio != true && Math . random ( ) > 0.5 ) {
if ( hitPixel . temp < pixel . temp ) {
hitPixel . temp ++
pixel . temp --
}
if ( hitPixel . temp > pixel . temp ) {
hitPixel . temp --
pixel . temp ++
}
}
2024-12-27 23:49:11 -05:00
}
else 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 . oxygen -= 5
}
createPixel ( "fire" , pixel . x , pixel . y + 1 )
}
}
if ( ! isEmpty ( pixel . x - 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x - 1 ] [ pixel . y ]
2025-01-02 22:06:28 -05:00
if ( elements [ hitPixel . element ] . isBio != true && Math . random ( ) > 0.5 ) {
if ( hitPixel . temp < pixel . temp ) {
hitPixel . temp ++
pixel . temp --
}
if ( hitPixel . temp > pixel . temp ) {
hitPixel . temp --
pixel . temp ++
}
}
2024-12-27 23:49:11 -05:00
}
else 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 . oxygen -= 5
}
createPixel ( "fire" , pixel . x - 1 , pixel . y )
}
}
if ( ! isEmpty ( pixel . x + 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x + 1 ] [ pixel . y ]
2025-01-02 22:06:28 -05:00
if ( elements [ hitPixel . element ] . isBio != true && Math . random ( ) > 0.5 ) {
if ( hitPixel . temp < pixel . temp ) {
hitPixel . temp ++
pixel . temp --
}
if ( hitPixel . temp > pixel . temp ) {
hitPixel . temp --
pixel . temp ++
}
}
2024-12-27 23:49:11 -05:00
}
else 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 . oxygen -= 5
}
createPixel ( "fire" , pixel . x + 1 , pixel . y )
}
}
2025-01-02 22:06:28 -05:00
doDefaults ( pixel ) ;
2024-12-27 23:49:11 -05:00
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2024-12-27 23:49:11 -05:00
} ,
2025-01-02 22:06:28 -05:00
tempHigh : 750 ,
2024-12-27 23:49:11 -05:00
stateHigh : "cooked_meat" ,
tempLow : - 20 ,
stateLow : "frozen_meat" ,
breakInto : [ "meat" , "cooked_meat" , "cooked_meat" , "fire" ] ,
category : "structural" ,
state : "solid" ,
2025-01-02 22:06:28 -05:00
insulate : true ,
2024-12-27 23:49:11 -05:00
density : 1250 ,
conduct : . 001 ,
movable : false ,
isBio : true ,
}
elements . digested _material = {
color : "#B5C306" ,
behavior : [
"XX|XX|XX" ,
"SW:stomach_acid,decomposer_acid,herbi_acid,carni_acid,explosive_acid%3 AND M2%5|XX|SW:stomach_acid,decomposer_acid,herbi_acid,carni_acid,explosive_acid%3 AND M2%5" ,
"SW:stomach_acid,decomposer_acid,herbi_acid,carni_acid,explosive_acid%5 AND M2%75|SW:stomach_acid,decomposer_acid,herbi_acid,carni_acid,explosive_acid%10 AND M1|SW:stomach_acid,decomposer_acid,herbi_acid,carni_acid,explosive_acid%5 AND M2%75" ,
] ,
properties : {
nutrition : 100 ,
2025-01-12 21:16:03 -05:00
speed : 0 ,
2024-12-27 23:49:11 -05:00
} ,
category : "nutrition" ,
state : "solid" ,
density : 900 ,
conduct : 0.25 ,
stain : 0.001 ,
darkText : true ,
hidden : true ,
tempHigh : 90 ,
stateHigh : "dirty_water" ,
tempLow : - 30 ,
stateLow : "dirty_ice" ,
}
elements . gaseous _material = {
color : "#B5C306" ,
behavior : [
"XX|XX|XX" ,
"SW:stomach_acid,decomposer_acid,herbi_acid,carni_acid,explosive_acid%3 AND M2%35|XX|SW:stomach_acid,decomposer_acid,herbi_acid,carni_acid,explosive_acid%3 AND M2%35" ,
"SW:stomach_acid,decomposer_acid,herbi_acid,carni_acid,explosive_acid%5 AND M2%50|SW:stomach_acid,decomposer_acid,herbi_acid,carni_acid,explosive_acid%10 AND M1|SW:stomach_acid,decomposer_acid,herbi_acid,carni_acid,explosive_acid%5 AND M2%50" ,
] ,
properties : {
nutrition : 100 ,
} ,
category : "nutrition" ,
state : "solid" ,
density : 800 ,
conduct : 0.25 ,
stain : 0.001 ,
darkText : true ,
hidden : true ,
tempHigh : 95 ,
stateHigh : "dirty_water" ,
tempLow : - 35 ,
stateLow : "dirty_ice" ,
}
elements . poop = {
color : "#593001" ,
behavior : [
"CR:stench%0.0002|CR:stench%0.001|CR:stench%0.0002" ,
2025-01-06 18:31:08 -05:00
"M2%75|XX|M2%75" ,
"M2|M1|M2" ,
2024-12-27 23:49:11 -05:00
] ,
reactions : {
"soap" : { elem1 : null , chance : 0.2 } ,
"bleach" : { elem1 : null , chance : 0.5 } ,
"pool_water" : { elem1 : null , elem2 : "water" , chance : 0.05 } ,
"water" : { elem1 : null , elem2 : "dirty_water" , chance : 0.02 } ,
"deoxygenated_water" : { elem1 : null , elem2 : "dirty_water" , chance : 0.0175 } ,
"salt_water" : { elem1 : null , elem2 : "dirty_water" , chance : 0.02 } ,
"sugar_water" : { elem1 : null , elem2 : "dirty_water" , chance : 0.02 } ,
"plant" : { elem2 : "dead_plant" , chance : 0.02 } ,
} ,
category : "nutrition" ,
state : "liquid" ,
2025-01-06 18:31:08 -05:00
viscosity : 500 ,
2024-12-27 23:49:11 -05:00
density : 200 ,
2025-01-06 18:31:08 -05:00
conduct : 0.005 ,
2024-12-27 23:49:11 -05:00
darkText : true ,
hidden : true ,
2025-01-06 18:31:08 -05:00
isWaste : true ,
tempHigh : 90 ,
stateHigh : "excreted_poop" ,
2024-12-27 23:49:11 -05:00
tempLow : - 30 ,
stain : 0.005 ,
stateLowName : "frozen_poop" ,
}
elements . excreted _poop = {
color : "#593001" ,
behavior : [
"CR:stench,stench,stench,stench,bacteria,stench,stench,fly,stench,stench,fly,stench,stench%0.0002|CR:stench,stench,stench,stench,bacteria,stench,stench,fly,stench,stench,fly,stench,stench%0.001|CR:stench,stench,stench,stench,bacteria,stench,stench,fly,stench,stench,fly,stench,stench%0.0002" ,
2025-01-06 18:31:08 -05:00
"M2%0.5|XX|M2%0.5" ,
2024-12-27 23:49:11 -05:00
"M2%55|M1|M2%55" ,
] ,
reactions : {
"soap" : { elem1 : null , chance : 0.2 } ,
"bleach" : { elem1 : null , chance : 0.5 } ,
"pool_water" : { elem1 : null , elem2 : "water" , chance : 0.05 } ,
"water" : { elem1 : null , elem2 : "dirty_water" , chance : 0.02 } ,
"deoxygenated_water" : { elem1 : null , elem2 : "dirty_water" , chance : 0.0175 } ,
"salt_water" : { elem1 : null , elem2 : "dirty_water" , chance : 0.02 } ,
"sugar_water" : { elem1 : null , elem2 : "dirty_water" , chance : 0.02 } ,
"plant" : { elem2 : "dead_plant" , chance : 0.02 } ,
} ,
category : "nutrition" ,
state : "liquid" ,
viscosity : 1000 ,
density : 200 ,
darkText : true ,
hidden : true ,
2025-01-06 18:31:08 -05:00
isWaste : true ,
2024-12-27 23:49:11 -05:00
tempHigh : 160 ,
stateHigh : [ "ash" , "stench" , "steam" , "steam" , "carbon_dioxide" ] ,
burn : 5 ,
burnTime : 30 ,
burnInto : [ "ash" , "stench" , "steam" , "steam" , "carbon_dioxide" , "fire" , "fire" ] ,
tempLow : - 10 ,
stain : 0.005 ,
stateLowName : "solid_poop" ,
}
elements . intestine _bacteria = {
color : "#955E93" ,
behavior : [
"XX|M2%0.3|M2%3" ,
"XX|FX%2 AND DL%0.0005|M2%3 AND BO" ,
"XX|M1|M2%3" ,
] ,
reactions : {
"water" : { elem1 : null , elem2 : "dirty_water" , chance : 0.01 } ,
"poop" : { elem2 : null , chance : 0.01 , func : behaviors . FEEDPIXEL } ,
2025-01-06 18:31:08 -05:00
"bacteria" : { elem2 : null , chance : 0.5 , func : behaviors . FEEDPIXEL } ,
"intestine_bacteria" : { elem2 : null , chance : 0.001 , func : behaviors . FEEDPIXEL } ,
2024-12-27 23:49:11 -05:00
"mercury" : { elem1 : [ null , null , null , null , null , null , null , null , null , "dna" ] , chance : 0.1 } ,
"bleach" : { elem1 : [ null , null , null , null , null , null , null , null , null , "dna" ] , chance : 0.1 } ,
"uranium" : { elem1 : [ null , null , null , null , null , null , null , null , null , "dna" ] , chance : 0.1 } ,
"cyanide" : { elem1 : [ null , null , null , null , null , null , null , null , null , "dna" ] , chance : 0.1 } ,
"chlorine" : { elem1 : [ null , null , null , null , null , null , null , null , null , "dna" ] , chance : 0.1 } ,
"alcohol" : { elem1 : [ null , null , null , null , null , null , null , null , null , "dna" ] , chance : 0.25 } ,
"vinegar" : { elem1 : [ null , null , null , null , null , null , null , null , null , "dna" ] , chance : 0.01 } ,
"mouthwash" : { elem1 : [ null , null , null , null , null , null , null , null , null , "dna" ] , chance : 0.001 } ,
} ,
2025-01-06 18:31:08 -05:00
foodNeed : 25 ,
2024-12-27 23:49:11 -05:00
egg : "intestine_bacteria" ,
tempHigh : 80 ,
stateHigh : "dna" ,
tempLow : - 10 ,
stateLow : "dna" ,
breakInto : "dna" ,
category : "nutrition" ,
burn : 95 ,
burnTime : 100 ,
burnInto : "dna" ,
state : "solid" ,
density : 600 ,
stain : - 0.005 ,
conduct : 0.1
}
elements . stomach _acid = {
color : [ "#b5cf91" , "#288f2a" ] ,
behavior : [
2025-01-12 21:16:03 -05:00
"XX|ADB%5|XX" ,
2025-01-18 23:47:59 -05:00
"ADB%10 AND M2|DL%0.03|ADB%10 AND M2" ,
"ADB%10 AND M2|ADB%15 AND M1|ADB%10 AND M2" ,
2024-12-27 23:49:11 -05:00
] ,
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 : {
2025-01-02 22:06:28 -05:00
"bless" : { elem1 : null , elem2 : [ "gaseous_material" , null , null , null , null , null , null , null , null , null , null ] , attr2 : { "nutrition" : 100 , "speed" : 10 } , chance : 0.5 } ,
2024-12-27 23:49:11 -05:00
"dirty_water" : { elem1 : null , elem2 : "digested_material" , attr2 : { "nutrition" : - 5 , "speed" : - 1 } , chance : 0.02 } ,
"water" : { elem1 : null , elem2 : "digested_material" , attr2 : { "nutrition" : 0 , "speed" : 2 } , chance : 0.02 } ,
"salt_water" : { elem1 : null , elem2 : "digested_material" , attr2 : { "nutrition" : 5 , "speed" : - 1 } , chance : 0.02 } ,
"sugar_water" : { elem1 : null , elem2 : "digested_material" , attr2 : { "nutrition" : 10 , "speed" : - 1 } , chance : 0.02 } ,
"tree_branch" : { elem1 : null , elem2 : "wood" , chance : 0.02 } ,
2025-01-06 18:31:08 -05:00
"sugar" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 , "speed" : 5 } , chance : 0.02 } ,
"molasses" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 , "speed" : 8 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"dead_plant" : { elem2 : "digested_material" , attr2 : { "nutrition" : 15 , "speed" : 1 } , chance : 0.02 } ,
"meat" : { elem2 : "digested_material" , attr2 : { "nutrition" : 30 , "speed" : - 1 } , chance : 0.02 } ,
"cooked_meat" : { elem2 : "digested_material" , attr2 : { "nutrition" : 60 } , chance : 0.02 } ,
"broth" : { elem1 : null , elem2 : "digested_material" , attr2 : { "nutrition" : 45 } , chance : 0.02 } ,
"rotten_meat" : { elem2 : [ "digested_material" , "ammonia" , null , null , null ] , attr2 : { "nutrition" : - 10 , "speed" : - 10 } , chance : 0.02 } ,
2025-01-18 19:19:52 -05:00
"cured_meat" : { elem2 : "digested_material" , attr2 : { "nutrition" : 50 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"cheese" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
2025-01-06 18:31:08 -05:00
"cheese_powder" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"lettuce" : { elem2 : "digested_material" , attr2 : { "nutrition" : 40 } , chance : 0.02 } ,
"herb" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
"toast" : { elem2 : "digested_material" , attr2 : { "nutrition" : 40 } , chance : 0.02 } ,
"bread" : { elem2 : "digested_material" , attr2 : { "nutrition" : 40 } , chance : 0.02 } ,
"hard_yolk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 40 } , chance : 0.02 } ,
"yolk" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : 5 , "speed" : - 2 } , chance : 0.02 } ,
"milk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 } , chance : 0.02 } ,
2025-01-06 18:31:08 -05:00
"eggnog" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 , "speed" : - 1 } , chance : 0.02 } ,
"nut_milk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 } , chance : 0.02 } ,
"chocolate_milk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 , "speed" : 1 } , chance : 0.02 } ,
"fruit_milk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 30 , "speed" : 1 } , chance : 0.02 } ,
"pilk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 30 , "speed" : 5 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"crumb" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"pickle" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
"salt" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 , "speed" : - 1 } , chance : 0.02 } ,
"worm" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : 5 , "speed" : - 1 } , chance : 0.02 } ,
"ant" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : 5 , "speed" : - 1 } , chance : 0.02 } ,
"bee" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : 5 , "speed" : - 1 } , chance : 0.02 } ,
"spider" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : 5 , "speed" : - 1 } , chance : 0.02 } ,
"egg" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 5 , "speed" : - 2 } , chance : 0.02 } ,
"soda" : { elem2 : "digested_material" , attr2 : { "nutrition" : 20 , "speed" : 2 } , chance : 0.02 } ,
"sap" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 5 , "speed" : - 1 } , chance : 0.02 } ,
"juice" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 , "speed" : 1 } , chance : 0.02 } ,
"mayo" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
"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 } ,
2025-01-12 21:16:03 -05:00
"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 } ,
2024-12-27 23:49:11 -05:00
"soap" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 20 , "speed" : - 10 } , chance : 0.02 } ,
2025-01-12 21:16:03 -05:00
"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 } ,
2024-12-12 13:08:41 -05:00
"pool_water" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 400 , "speed" : - 10 } , chance : 0.02 } ,
2025-01-12 21:16:03 -05:00
"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 } ,
2024-12-12 13:08:41 -05:00
"coffee" : { elem2 : "digested_material" , attr2 : { "nutrition" : 20 , "speed" : 10 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"tomato" : { elem2 : "digested_material" , attr2 : { "nutrition" : 45 } , chance : 0.02 } ,
"grape" : { elem2 : "digested_material" , attr2 : { "nutrition" : 45 } , chance : 0.02 } ,
"beans" : { elem2 : "digested_material" , attr2 : { "nutrition" : 40 } , chance : 0.02 } ,
"sauce" : { elem2 : "digested_material" , attr2 : { "nutrition" : 45 } , chance : 0.02 } ,
"butter" : { elem2 : "digested_material" , attr2 : { "nutrition" : 15 , "speed" : - 1 } , chance : 0.02 } ,
"melted_cheese" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 } , chance : 0.02 } ,
"melted_chocolate" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 } , chance : 0.02 } ,
"melted_butter" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 } , chance : 0.02 } ,
"chocolate" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 , "speed" : 2 } , chance : 0.02 } ,
2025-01-06 18:31:08 -05:00
"chocolate_powder" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 , "speed" : 2 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"rice" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
"dough" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 , "speed" : - 1 } , chance : 0.02 } ,
"batter" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 , "speed" : - 1 } , chance : 0.02 } ,
"baked_batter" : { elem2 : "digested_material" , attr2 : { "nutrition" : 45 , "speed" : 2 } , chance : 0.02 } ,
"gingerbread" : { elem2 : "digested_material" , attr2 : { "nutrition" : 45 , "speed" : 2 } , chance : 0.02 } ,
"ice_cream" : { elem2 : "digested_material" , attr2 : { "nutrition" : 40 , "speed" : 2 } , chance : 0.02 } ,
"cream" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 } , chance : 0.02 } ,
"caramel" : { elem2 : "digested_material" , attr2 : { "nutrition" : 30 , "speed" : 3 } , chance : 0.02 } ,
"potato" : { elem2 : "digested_material" , attr2 : { "nutrition" : 15 , "speed" : - 1 } , chance : 0.02 } ,
"baked_potato" : { elem2 : "digested_material" , attr2 : { "nutrition" : 45 , "speed" : 1 } , chance : 0.02 } ,
"mashed_potato" : { elem2 : "digested_material" , attr2 : { "nutrition" : 40 , "speed" : 1 } , chance : 0.02 } ,
"yogurt" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 , "speed" : 1 } , chance : 0.02 } ,
"frozen_yogurt" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 , "speed" : 2 } , chance : 0.02 } ,
"slush" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 , "speed" : - 1 } , chance : 0.02 } ,
"coffee_bean" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 5 , "speed" : 20 } , chance : 0.02 } ,
"coffee_ground" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 5 , "speed" : 15 } , chance : 0.02 } ,
"yeast" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 5 , "speed" : - 1 } , chance : 0.02 } ,
"alcohol" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 , "speed" : - 15 } , chance : 0.02 } ,
"honey" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 , "speed" : 3 } , chance : 0.02 } ,
"blood" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 , "speed" : - 1 } , chance : 0.02 } ,
"poop" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 15 , "speed" : - 10 } , chance : 0.02 } ,
2025-01-06 18:31:08 -05:00
"excreted_poop" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 15 , "speed" : - 10 } , chance : 0.02 } ,
"urine" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 15 , "speed" : - 10 } , chance : 0.02 } ,
"tea" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 , "speed" : 10 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"infection" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 15 , "speed" : - 5 } , chance : 0.02 } ,
"cancer" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 15 , "speed" : - 15 } , chance : 0.02 } ,
"plague" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 15 , "speed" : - 10 } , chance : 0.02 } ,
"glue" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 10 , "speed" : - 10 } , chance : 0.02 } ,
} ,
category : "nutrition" ,
tempHigh : 110 ,
stateHigh : "acid_gas" ,
tempLow : - 58.88 ,
burn : 30 ,
burnTime : 1 ,
state : "liquid" ,
2025-01-18 23:57:42 -05:00
density : 1550 ,
2025-01-18 19:19:52 -05:00
stain : - 0.1 ,
isAcid : true ,
2024-12-27 23:49:11 -05:00
}
elements . herbi _acid = {
color : [ "#A8E54F" , "#5BC217" ] ,
behavior : [
2025-01-12 21:16:03 -05:00
"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" ,
2024-12-27 23:49:11 -05:00
] ,
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 : {
2025-01-02 22:06:28 -05:00
"bless" : { elem1 : null , elem2 : [ "gaseous_material" , null , null , null , null , null , null , null , null , null , null ] , attr2 : { "nutrition" : 100 , "speed" : 10 } , chance : 0.5 } ,
2024-12-27 23:49:11 -05:00
"dirty_water" : { elem1 : null , elem2 : "digested_material" , attr2 : { "nutrition" : - 5 , "speed" : - 3 } , chance : 0.02 } ,
"water" : { elem1 : null , elem2 : "digested_material" , attr2 : { "nutrition" : 0 , "speed" : 5 } , chance : 0.02 } ,
"salt_water" : { elem1 : null , elem2 : "digested_material" , attr2 : { "nutrition" : 5 , "speed" : - 1 } , chance : 0.02 } ,
"sugar_water" : { elem1 : null , elem2 : "digested_material" , attr2 : { "nutrition" : 10 , "speed" : 1 } , chance : 0.02 } ,
"plant" : { elem2 : "digested_material" , attr2 : { "nutrition" : 80 , "speed" : 1 } , chance : 0.02 } ,
"tree_branch" : { elem1 : null , elem2 : "wood" , attr2 : { "nutrition" : 10 , "speed" : 1 } , chance : 0.02 } ,
2025-01-06 18:31:08 -05:00
"sugar" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 , "speed" : 5 } , chance : 0.02 } ,
"molasses" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 , "speed" : 8 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"dead_plant" : { elem2 : "digested_material" , attr2 : { "nutrition" : 75 } , chance : 0.02 } ,
"meat" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 10 , "speed" : - 1 } , chance : 0.02 } ,
"cooked_meat" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 5 , "speed" : 1 } , chance : 0.02 } ,
"broth" : { elem1 : null , elem2 : "digested_material" , attr2 : { "nutrition" : - 5 } , chance : 0.02 } ,
"rotten_meat" : { elem2 : [ "digested_material" , "ammonia" , null , null , null ] , attr2 : { "nutrition" : - 25 , "speed" : - 20 } , chance : 0.02 } ,
2025-01-18 19:19:52 -05:00
"cured_meat" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 5 , "speed" : - 1 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"cheese" : { elem2 : "digested_material" , attr2 : { "nutrition" : 40 } , chance : 0.02 } ,
2025-01-06 18:31:08 -05:00
"cheese_powder" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"vine" : { elem2 : "digested_material" , attr2 : { "nutrition" : 60 } , chance : 0.02 } ,
"grass" : { elem2 : "digested_material" , attr2 : { "nutrition" : 60 } , chance : 0.02 } ,
"kelp" : { elem2 : "digested_material" , attr2 : { "nutrition" : 60 } , chance : 0.02 } ,
"algae" : { elem2 : "digested_material" , attr2 : { "nutrition" : 50 } , chance : 0.02 } ,
"lettuce" : { elem2 : "digested_material" , attr2 : { "nutrition" : 60 } , chance : 0.02 } ,
"herb" : { elem2 : "digested_material" , attr2 : { "nutrition" : 50 } , chance : 0.02 } ,
"toast" : { elem2 : "digested_material" , attr2 : { "nutrition" : 40 } , chance : 0.02 } ,
"bread" : { elem2 : "digested_material" , attr2 : { "nutrition" : 40 } , chance : 0.02 } ,
"hard_yolk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 30 } , chance : 0.02 } ,
"yolk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 , "speed" : 5 } , chance : 0.02 } ,
"milk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
2025-01-06 18:31:08 -05:00
"eggnog" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 , "speed" : - 1 } , chance : 0.02 } ,
"nut_milk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 } , chance : 0.02 } ,
"chocolate_milk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 , "speed" : 1 } , chance : 0.02 } ,
"fruit_milk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 40 , "speed" : 1 } , chance : 0.02 } ,
"pilk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 , "speed" : 5 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"crumb" : { elem2 : "digested_material" , attr2 : { "nutrition" : 15 } , chance : 0.02 } ,
"pickle" : { elem2 : "digested_material" , attr2 : { "nutrition" : 45 } , chance : 0.02 } ,
"salt" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 } , chance : 0.02 } ,
"worm" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 10 } , chance : 0.02 } ,
"ant" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 10 } , chance : 0.02 } ,
"bee" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 10 } , chance : 0.02 } ,
"spider" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 10 } , chance : 0.02 } ,
"egg" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 20 } , chance : 0.02 } ,
"soda" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 5 } , chance : 0.02 } ,
"sap" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 } , chance : 0.02 } ,
"juice" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
"mayo" : { elem2 : "digested_material" , attr2 : { "nutrition" : 15 } , chance : 0.02 } ,
"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 } ,
2025-01-12 21:16:03 -05:00
"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 } ,
2024-12-27 23:49:11 -05:00
"soap" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 20 , "speed" : - 10 } , chance : 0.02 } ,
2025-01-12 21:16:03 -05:00
"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 } ,
2024-12-27 23:49:11 -05:00
"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 } ,
2024-11-28 14:00:55 -05:00
"beans" : { elem2 : "digested_material" , attr2 : { "nutrition" : 40 } , chance : 0.02 } ,
"sauce" : { elem2 : "digested_material" , attr2 : { "nutrition" : 45 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"butter" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"melted_cheese" : { elem2 : "digested_material" , attr2 : { "nutrition" : 15 } , chance : 0.02 } ,
"melted_chocolate" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 } , chance : 0.02 } ,
"melted_butter" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"chocolate" : { elem2 : "digested_material" , attr2 : { "nutrition" : 20 , "speed" : 2 } , chance : 0.02 } ,
2025-01-06 18:31:08 -05:00
"chocolate_powder" : { elem2 : "digested_material" , attr2 : { "nutrition" : 20 , "speed" : 2 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"rice" : { elem2 : "digested_material" , attr2 : { "nutrition" : 45 } , chance : 0.02 } ,
"dough" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"batter" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"baked_batter" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
"gingerbread" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
"ice_cream" : { elem2 : "digested_material" , attr2 : { "nutrition" : 30 } , chance : 0.02 } ,
2024-11-28 14:00:55 -05:00
"cream" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"caramel" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 } , chance : 0.02 } ,
"potato" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
"baked_potato" : { elem2 : "digested_material" , attr2 : { "nutrition" : 45 } , chance : 0.02 } ,
"mashed_potato" : { elem2 : "digested_material" , attr2 : { "nutrition" : 40 } , chance : 0.02 } ,
"yogurt" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
"frozen_yogurt" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
2024-12-12 13:08:41 -05:00
"slush" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 , "speed" : - 1 } , chance : 0.02 } ,
"coffee_bean" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 5 , "speed" : 20 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"coffee_ground" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 5 , "speed" : 15 } , chance : 0.02 } ,
"yeast" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 5 } , chance : 0.02 } ,
"alcohol" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 5 , "speed" : - 15 } , chance : 0.02 } ,
2024-12-12 13:08:41 -05:00
"honey" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 , "speed" : 3 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"blood" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 5 , "speed" : - 1 } , chance : 0.02 } ,
2024-12-26 19:51:40 -05:00
"poop" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 15 , "speed" : - 10 } , chance : 0.02 } ,
2025-01-06 18:31:08 -05:00
"excreted_poop" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 15 , "speed" : - 10 } , chance : 0.02 } ,
"urine" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 15 , "speed" : - 10 } , chance : 0.02 } ,
"tea" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 , "speed" : 10 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"infection" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 20 , "speed" : - 5 } , chance : 0.02 } ,
"cancer" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 25 , "speed" : - 15 } , chance : 0.02 } ,
2024-12-26 19:51:40 -05:00
"plague" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 15 , "speed" : - 10 } , chance : 0.02 } ,
"glue" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 10 , "speed" : - 10 } , chance : 0.02 } ,
2024-11-25 23:09:06 -05:00
} ,
2024-11-27 23:13:34 -05:00
category : "nutrition" ,
tempHigh : 110 ,
stateHigh : "acid_gas" ,
tempLow : - 58.88 ,
burn : 30 ,
burnTime : 1 ,
state : "liquid" ,
2025-01-18 23:57:42 -05:00
density : 1550 ,
2025-01-18 19:19:52 -05:00
stain : - 0.1 ,
isAcid : true ,
2024-11-27 23:13:34 -05:00
}
2024-12-27 23:49:11 -05:00
elements . carni _acid = {
color : [ "#ADA469" , "#5B6517" ] ,
behavior : [
2025-01-12 21:16:03 -05:00
"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" ,
2024-12-27 23:49:11 -05:00
] ,
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 : {
2025-01-02 22:06:28 -05:00
"bless" : { elem1 : null , elem2 : [ "gaseous_material" , null , null , null , null , null , null , null , null , null , null ] , attr2 : { "nutrition" : 100 , "speed" : 10 } , chance : 0.5 } ,
2024-12-27 23:49:11 -05:00
"dirty_water" : { elem1 : null , elem2 : "digested_material" , attr2 : { "nutrition" : - 5 , "speed" : - 2 } , chance : 0.02 } ,
"water" : { elem1 : null , elem2 : "digested_material" , attr2 : { "nutrition" : 0 , "speed" : 5 } , chance : 0.02 } ,
"salt_water" : { elem1 : null , elem2 : "digested_material" , attr2 : { "nutrition" : 5 , "speed" : - 1 } , chance : 0.02 } ,
"sugar_water" : { elem1 : null , elem2 : "digested_material" , attr2 : { "nutrition" : 10 , "speed" : 1 } , chance : 0.02 } ,
"plant" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 , "speed" : - 5 } , chance : 0.02 } ,
"tree_branch" : { elem1 : null , elem2 : "wood" , chance : 0.02 } ,
"sugar" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 , "speed" : 3 } , chance : 0.02 } ,
2025-01-06 18:31:08 -05:00
"molasses" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 , "speed" : 5 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"dead_plant" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 , "speed" : - 1 } , chance : 0.02 } ,
"meat" : { elem2 : "digested_material" , attr2 : { "nutrition" : 70 , "speed" : 5 } , chance : 0.02 } ,
"cooked_meat" : { elem2 : "digested_material" , attr2 : { "nutrition" : 60 , "speed" : 4 } , chance : 0.02 } ,
"broth" : { elem1 : null , elem2 : "digested_material" , attr2 : { "nutrition" : 50 , "speed" : 6 } , chance : 0.02 } ,
"rotten_meat" : { elem2 : [ "digested_material" , "ammonia" , null , null , null ] , attr2 : { "nutrition" : 5 , "speed" : - 5 } , chance : 0.02 } ,
2025-01-18 19:19:52 -05:00
"cured_meat" : { elem2 : "digested_material" , attr2 : { "nutrition" : 50 , "speed" : - 1 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"cheese" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 , "speed" : - 1 } , chance : 0.02 } ,
2025-01-06 18:31:08 -05:00
"cheese_powder" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 , "speed" : - 1 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"lettuce" : { elem2 : "digested_material" , attr2 : { "nutrition" : 20 } , chance : 0.02 } ,
"herb" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 , "speed" : - 1 } , chance : 0.02 } ,
"toast" : { elem2 : "digested_material" , attr2 : { "nutrition" : 20 } , chance : 0.02 } ,
"bread" : { elem2 : "digested_material" , attr2 : { "nutrition" : 20 } , chance : 0.02 } ,
"hard_yolk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 50 } , chance : 0.02 } ,
"yolk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 50 } , chance : 0.02 } ,
"milk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
2025-01-06 18:31:08 -05:00
"eggnog" : { elem2 : "digested_material" , attr2 : { "nutrition" : 20 , "speed" : - 1 } , chance : 0.02 } ,
"nut_milk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 } , chance : 0.02 } ,
"chocolate_milk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 , "speed" : 1 } , chance : 0.02 } ,
"fruit_milk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 30 , "speed" : 1 } , chance : 0.02 } ,
"pilk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 30 , "speed" : 5 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"crumb" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"pickle" : { elem2 : "digested_material" , attr2 : { "nutrition" : 15 } , chance : 0.02 } ,
"salt" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"worm" : { elem2 : "digested_material" , attr2 : { "nutrition" : 15 } , chance : 0.02 } ,
"ant" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 } , chance : 0.02 } ,
"bee" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 } , chance : 0.02 } ,
"spider" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 } , chance : 0.02 } ,
"rat" : { elem2 : "digested_material" , attr2 : { "nutrition" : 15 , "speed" : - 1 } , chance : 0.02 } ,
"bird" : { elem2 : "digested_material" , attr2 : { "nutrition" : 15 , "speed" : 1 } , chance : 0.02 } ,
"fish" : { elem2 : "digested_material" , attr2 : { "nutrition" : 15 , "speed" : 1 } , chance : 0.02 } ,
"head" : { elem2 : "digested_material" , attr2 : { "nutrition" : 15 , "speed" : 2 } , chance : 0.02 } ,
"body" : { elem2 : "digested_material" , attr2 : { "nutrition" : 15 , "speed" : 2 } , chance : 0.02 } ,
"egg" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 , "speed" : 1 } , chance : 0.02 } ,
"soda" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 , "speed" : - 1 } , chance : 0.02 } ,
"sap" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 10 , "speed" : - 1 } , chance : 0.02 } ,
"juice" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 , "speed" : 1 } , chance : 0.02 } ,
"mayo" : { elem2 : "digested_material" , attr2 : { "nutrition" : 40 } , chance : 0.02 } ,
"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 } ,
2025-01-12 21:16:03 -05:00
"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 } ,
2024-12-27 23:49:11 -05:00
"soap" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 20 , "speed" : - 15 } , chance : 0.02 } ,
2025-01-12 21:16:03 -05:00
"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 } ,
2024-12-27 23:49:11 -05:00
"pool_water" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 400 , "speed" : - 15 } , chance : 0.02 } ,
2025-01-12 21:16:03 -05:00
"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 } ,
2024-12-27 23:49:11 -05:00
"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 } ,
"beans" : { elem2 : "digested_material" , attr2 : { "nutrition" : 20 } , chance : 0.02 } ,
"sauce" : { elem2 : "digested_material" , attr2 : { "nutrition" : 15 } , chance : 0.02 } ,
"butter" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 5 } , chance : 0.02 } ,
"melted_cheese" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"melted_chocolate" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 } , chance : 0.02 } ,
"melted_butter" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 10 } , chance : 0.02 } ,
"chocolate" : { elem2 : "digested_material" , attr2 : { "nutrition" : 15 } , chance : 0.02 } ,
2025-01-06 18:31:08 -05:00
"chocolate_powder" : { elem2 : "digested_material" , attr2 : { "nutrition" : 15 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"rice" : { elem2 : "digested_material" , attr2 : { "nutrition" : 15 } , chance : 0.02 } ,
"dough" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"batter" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 5 } , chance : 0.02 } ,
"baked_batter" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
"gingerbread" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
"ice_cream" : { elem2 : "digested_material" , attr2 : { "nutrition" : 30 , "speed" : 1 } , chance : 0.02 } ,
"cream" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
"caramel" : { elem2 : "digested_material" , attr2 : { "nutrition" : 20 } , chance : 0.02 } ,
"potato" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"baked_potato" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 } , chance : 0.02 } ,
"mashed_potato" : { elem2 : "digested_material" , attr2 : { "nutrition" : 20 } , chance : 0.02 } ,
"yogurt" : { elem2 : "digested_material" , attr2 : { "nutrition" : 15 } , chance : 0.02 } ,
"frozen_yogurt" : { elem2 : "digested_material" , attr2 : { "nutrition" : 15 } , chance : 0.02 } ,
"slush" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 1 , "speed" : 1 } , chance : 0.02 } ,
"coffee_bean" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 10 , "speed" : 15 } , chance : 0.02 } ,
"yeast" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 10 } , chance : 0.02 } ,
"alcohol" : { elem2 : "digested_material" , attr2 : { "nutrition" : "-15" , "speed" : - 15 } , chance : 0.02 } ,
"honey" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 , "speed" : 5 } , chance : 0.02 } ,
"blood" : { elem2 : "digested_material" , attr2 : { "nutrition" : 15 , "speed" : 3 } , chance : 0.02 } ,
"poop" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 15 , "speed" : - 5 } , chance : 0.02 } ,
2025-01-06 18:31:08 -05:00
"excreted_poop" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 15 , "speed" : - 5 } , chance : 0.02 } ,
"urine" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 15 , "speed" : - 10 } , chance : 0.02 } ,
"tea" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 , "speed" : 10 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"infection" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 5 } , chance : 0.02 } ,
"cancer" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 5 , "speed" : - 5 } , chance : 0.02 } ,
"plague" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 15 , "speed" : - 10 } , chance : 0.02 } ,
"glue" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 10 , "speed" : - 15 } , chance : 0.02 } ,
} ,
category : "nutrition" ,
tempHigh : 110 ,
stateHigh : "acid_gas" ,
tempLow : - 58.88 ,
burn : 30 ,
burnTime : 1 ,
state : "liquid" ,
2025-01-18 23:57:42 -05:00
density : 1550 ,
2025-01-18 19:19:52 -05:00
stain : - 0.1 ,
isAcid : true ,
2024-12-27 23:49:11 -05:00
}
elements . explosive _acid = {
color : [ "#E9DC8C" , "#D0C15A" ] ,
behavior : [
2025-01-12 21:16:03 -05:00
"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" ,
2024-12-27 23:49:11 -05:00
] ,
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 : {
2025-01-02 22:06:28 -05:00
"bless" : { elem1 : null , elem2 : [ "gaseous_material" , null , null , null , null , null , null , null , null , null , null ] , attr2 : { "nutrition" : 100 , "speed" : 10 } , chance : 0.5 } ,
2024-12-27 23:49:11 -05:00
"dirty_water" : { elem1 : null , elem2 : "digested_material" , attr2 : { "nutrition" : - 5 } , chance : 0.02 } ,
"water" : { elem1 : null , elem2 : "digested_material" , attr2 : { "nutrition" : 0 , "speed" : 10 } , chance : 0.02 } ,
"salt_water" : { elem1 : null , elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"sugar_water" : { elem1 : null , elem2 : "digested_material" , attr2 : { "nutrition" : 10 } , chance : 0.02 } ,
"plant" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 , "speed" : 5 } , chance : 0.02 } ,
"tree_branch" : { elem1 : null , elem2 : "wood" , chance : 0.02 } ,
"sugar" : { elem2 : "digested_material" , attr2 : { "nutrition" : 30 , "speed" : 5 } , chance : 0.02 } ,
2025-01-06 18:31:08 -05:00
"molasses" : { elem2 : "digested_material" , attr2 : { "nutrition" : 15 , "speed" : 8 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"dead_plant" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 } , chance : 0.02 } ,
"meat" : { elem2 : "digested_material" , attr2 : { "nutrition" : 30 , "speed" : 5 } , chance : 0.02 } ,
"cooked_meat" : { elem2 : "digested_material" , attr2 : { "nutrition" : 60 } , chance : 0.02 } ,
"broth" : { elem1 : null , elem2 : "digested_material" , attr2 : { "nutrition" : 55 } , chance : 0.02 } ,
"rotten_meat" : { elem2 : [ "digested_material" , "ammonia" , null , null , null ] , attr2 : { "nutrition" : 30 } , chance : 0.02 } ,
2025-01-18 19:19:52 -05:00
"cured_meat" : { elem2 : "digested_material" , attr2 : { "nutrition" : 50 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"cheese" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
"lettuce" : { elem2 : "digested_material" , attr2 : { "nutrition" : 40 } , chance : 0.02 } ,
"herb" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
"toast" : { elem2 : "digested_material" , attr2 : { "nutrition" : 40 } , chance : 0.02 } ,
"bread" : { elem2 : "digested_material" , attr2 : { "nutrition" : 40 } , chance : 0.02 } ,
"hard_yolk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 40 } , chance : 0.02 } ,
"yolk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 } , chance : 0.02 } ,
"milk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 } , chance : 0.02 } ,
2025-01-06 18:31:08 -05:00
"eggnog" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 , "speed" : 1 } , chance : 0.02 } ,
"nut_milk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 } , chance : 0.02 } ,
"chocolate_milk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 , "speed" : 1 } , chance : 0.02 } ,
"fruit_milk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 30 , "speed" : 1 } , chance : 0.02 } ,
"pilk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 30 , "speed" : 5 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"crumb" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"pickle" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
"salt" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"worm" : { elem2 : "digested_material" , attr2 : { "nutrition" : 15 } , chance : 0.02 } ,
"ant" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 } , chance : 0.02 } ,
"bee" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 } , chance : 0.02 } ,
"spider" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 } , chance : 0.02 } ,
"egg" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 } , chance : 0.02 } ,
"soda" : { elem2 : "digested_material" , attr2 : { "nutrition" : 20 } , chance : 0.02 } ,
"sap" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"juice" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 } , chance : 0.02 } ,
"mayo" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
"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" : 5 } , chance : 0.02 } ,
"poison" : { elem2 : "digested_material" , attr2 : { "nutrition" : 20 } , chance : 0.02 } ,
2025-01-12 21:16:03 -05:00
"cyanide" : { elem2 : "digested_material" , attr2 : { "nutrition" : 20 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"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 } ,
2025-01-12 21:16:03 -05:00
"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 } ,
2024-12-27 23:49:11 -05:00
"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 } ,
"beans" : { elem2 : "digested_material" , attr2 : { "nutrition" : 40 } , chance : 0.02 } ,
"sauce" : { elem2 : "digested_material" , attr2 : { "nutrition" : 45 } , chance : 0.02 } ,
"butter" : { elem2 : "digested_material" , attr2 : { "nutrition" : 15 } , chance : 0.02 } ,
"melted_cheese" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 } , chance : 0.02 } ,
"melted_chocolate" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 } , chance : 0.02 } ,
"melted_butter" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 } , chance : 0.02 } ,
"chocolate" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
2025-01-06 18:31:08 -05:00
"cheese_powder" : { elem2 : "digested_material" , attr2 : { "nutrition" : 40 } , chance : 0.02 } ,
"chocolate_powder" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 , "speed" : 2 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"rice" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
"dough" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"batter" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"baked_batter" : { elem2 : "digested_material" , attr2 : { "nutrition" : 45 } , chance : 0.02 } ,
"gingerbread" : { elem2 : "digested_material" , attr2 : { "nutrition" : 45 } , chance : 0.02 } ,
"ice_cream" : { elem2 : "digested_material" , attr2 : { "nutrition" : 40 } , chance : 0.02 } ,
"cream" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 } , chance : 0.02 } ,
"caramel" : { elem2 : "digested_material" , attr2 : { "nutrition" : 30 } , chance : 0.02 } ,
"potato" : { elem2 : "digested_material" , attr2 : { "nutrition" : 15 } , chance : 0.02 } ,
"baked_potato" : { elem2 : "digested_material" , attr2 : { "nutrition" : 45 } , chance : 0.02 } ,
"mashed_potato" : { elem2 : "digested_material" , attr2 : { "nutrition" : 40 } , chance : 0.02 } ,
"yogurt" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
"frozen_yogurt" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
"slush" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"coffee_bean" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"yeast" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"alcohol" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"honey" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
"blood" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"poop" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
2025-01-06 18:31:08 -05:00
"excreted_poop" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"urine" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"tea" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 , "speed" : 5 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"infection" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"cancer" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"plague" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"glue" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
} ,
category : "nutrition" ,
tempHigh : 600 ,
stateHigh : "pop" ,
burn : 100 ,
burnTime : 1 ,
burnInto : "explosion" ,
breakInto : [ "explosion" , "pop" ] ,
viscosity : 36 ,
tempLow : - 58.88 ,
state : "liquid" ,
2025-01-18 23:57:42 -05:00
density : 1550 ,
2025-01-18 19:19:52 -05:00
isAcid : true ,
2024-12-27 23:49:11 -05:00
}
elements . decomposer _acid = {
color : [ "#847C35" , "#6F7326" ] ,
2024-11-27 23:13:34 -05:00
behavior : [
2025-01-12 21:16:03 -05:00
"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" ,
2024-11-27 23:13:34 -05:00
] ,
2024-12-27 23:49:11 -05:00
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" ] ,
2024-11-27 23:13:34 -05:00
reactions : {
2025-01-02 22:06:28 -05:00
"bless" : { elem1 : null , elem2 : [ "gaseous_material" , null , null , null , null , null , null , null , null , null , null ] , attr2 : { "nutrition" : 100 , "speed" : 10 } , chance : 0.5 } ,
2024-12-27 23:49:11 -05:00
"dirty_water" : { elem1 : null , elem2 : "digested_material" , attr2 : { "nutrition" : - 5 } , chance : 0.02 } ,
2024-12-12 13:08:41 -05:00
"water" : { elem1 : null , elem2 : "digested_material" , attr2 : { "nutrition" : 0 , "speed" : 5 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"salt_water" : { elem1 : null , elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"sugar_water" : { elem1 : null , elem2 : "digested_material" , attr2 : { "nutrition" : 10 } , chance : 0.02 } ,
"plant" : { elem2 : "digested_material" , attr2 : { "nutrition" : 40 } , chance : 0.02 } ,
"tree_branch" : { elem1 : null , elem2 : "wood" , attr2 : { "nutrition" : 30 } , chance : 0.02 } ,
"sugar" : { elem2 : "digested_material" , attr2 : { "nutrition" : 30 } , chance : 0.02 } ,
2025-01-06 18:31:08 -05:00
"molasses" : { elem2 : "digested_material" , attr2 : { "nutrition" : 20 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"dead_plant" : { elem2 : "digested_material" , attr2 : { "nutrition" : 90 , "speed" : 5 } , chance : 0.02 } ,
"meat" : { elem2 : "digested_material" , attr2 : { "nutrition" : 20 } , chance : 0.02 } ,
"cooked_meat" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 5 } , chance : 0.02 } ,
"broth" : { elem1 : null , elem2 : "digested_material" , attr2 : { "nutrition" : 25 } , chance : 0.02 } ,
"rotten_meat" : { elem2 : [ "digested_material" , "ammonia" , null , null , null ] , attr2 : { "nutrition" : 55 , "speed" : 5 } , chance : 0.02 } ,
2025-01-18 19:19:52 -05:00
"cured_meat" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 5 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"cheese" : { elem2 : "digested_material" , attr2 : { "nutrition" : 50 } , chance : 0.02 } ,
"vine" : { elem2 : "digested_material" , attr2 : { "nutrition" : 30 } , chance : 0.02 } ,
"grass" : { elem2 : "digested_material" , attr2 : { "nutrition" : 30 } , chance : 0.02 } ,
"kelp" : { elem2 : "digested_material" , attr2 : { "nutrition" : 30 } , chance : 0.02 } ,
"algae" : { elem2 : "digested_material" , attr2 : { "nutrition" : 60 , "speed" : 5 } , chance : 0.02 } ,
"lettuce" : { elem2 : "digested_material" , attr2 : { "nutrition" : 50 } , chance : 0.02 } ,
2024-11-28 14:00:55 -05:00
"herb" : { elem2 : "digested_material" , attr2 : { "nutrition" : 50 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"toast" : { elem2 : "digested_material" , attr2 : { "nutrition" : 20 } , chance : 0.02 } ,
"bread" : { elem2 : "digested_material" , attr2 : { "nutrition" : 30 } , chance : 0.02 } ,
"hard_yolk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 } , chance : 0.02 } ,
"yolk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 15 } , chance : 0.02 } ,
"milk" : { elem2 : "digested_material" , attr2 : { "nutrition" : 55 } , chance : 0.02 } ,
2024-11-28 14:00:55 -05:00
"crumb" : { elem2 : "digested_material" , attr2 : { "nutrition" : 15 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"pickle" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
2024-11-28 14:00:55 -05:00
"salt" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"worm" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 } , chance : 0.02 } ,
"ant" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 } , chance : 0.02 } ,
"bee" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 } , chance : 0.02 } ,
"spider" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 } , chance : 0.02 } ,
"egg" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 } , chance : 0.02 } ,
"soda" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
2024-11-28 14:00:55 -05:00
"sap" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"juice" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 } , chance : 0.02 } ,
2024-11-28 14:00:55 -05:00
"mayo" : { elem2 : "digested_material" , attr2 : { "nutrition" : 15 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"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 } ,
2025-01-12 21:16:03 -05:00
"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 } ,
2024-12-12 13:08:41 -05:00
"pool_water" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 400 , "speed" : - 15 } , chance : 0.02 } ,
2025-01-12 21:16:03 -05:00
"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 } ,
2024-12-12 13:08:41 -05:00
"coffee" : { elem2 : "digested_material" , attr2 : { "nutrition" : 20 , "speed" : 10 } , chance : 0.02 } ,
2024-11-28 14:00:55 -05:00
"tomato" : { elem2 : "digested_material" , attr2 : { "nutrition" : 55 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"grape" : { elem2 : "digested_material" , attr2 : { "nutrition" : 40 } , chance : 0.02 } ,
2024-11-28 14:00:55 -05:00
"beans" : { elem2 : "digested_material" , attr2 : { "nutrition" : 40 } , chance : 0.02 } ,
"sauce" : { elem2 : "digested_material" , attr2 : { "nutrition" : 45 } , chance : 0.02 } ,
"butter" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"melted_cheese" : { elem2 : "digested_material" , attr2 : { "nutrition" : 15 } , chance : 0.02 } ,
"melted_chocolate" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 } , chance : 0.02 } ,
"melted_butter" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"chocolate" : { elem2 : "digested_material" , attr2 : { "nutrition" : 30 , "speed" : 1 } , chance : 0.02 } ,
2025-01-06 18:31:08 -05:00
"cheese_powder" : { elem2 : "digested_material" , attr2 : { "nutrition" : 40 } , chance : 0.02 } ,
"chocolate_powder" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 , "speed" : 1 } , chance : 0.02 } ,
2024-11-28 14:00:55 -05:00
"rice" : { elem2 : "digested_material" , attr2 : { "nutrition" : 45 } , chance : 0.02 } ,
"dough" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"batter" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 } , chance : 0.02 } ,
"baked_batter" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
2024-12-10 19:53:59 -05:00
"gingerbread" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
2024-11-28 14:00:55 -05:00
"ice_cream" : { elem2 : "digested_material" , attr2 : { "nutrition" : 30 } , chance : 0.02 } ,
"cream" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 } , chance : 0.02 } ,
"caramel" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 } , chance : 0.02 } ,
"potato" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
"baked_potato" : { elem2 : "digested_material" , attr2 : { "nutrition" : 45 } , chance : 0.02 } ,
"mashed_potato" : { elem2 : "digested_material" , attr2 : { "nutrition" : 40 } , chance : 0.02 } ,
"yogurt" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
"frozen_yogurt" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"slush" : { elem2 : "digested_material" , attr2 : { "nutrition" : 0 } , chance : 0.02 } ,
"coffee_bean" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 5 , "speed" : 15 } , chance : 0.02 } ,
2024-11-28 14:00:55 -05:00
"yeast" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 5 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"alcohol" : { elem2 : "digested_material" , attr2 : { "nutrition" : - 35 , "speed" : - 5 } , chance : 0.02 } ,
"honey" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 , "speed" : 1 } , chance : 0.02 } ,
"blood" : { elem2 : "digested_material" , attr2 : { "nutrition" : 5 , "speed" : - 1 } , chance : 0.02 } ,
"infection" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 15 , "speed" : - 15 } , chance : 0.02 } ,
"cancer" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 15 , "speed" : - 15 } , chance : 0.02 } ,
"plague" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 15 , "speed" : - 15 } , chance : 0.02 } ,
"glue" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : - 10 , "speed" : - 15 } , chance : 0.02 } ,
"poop" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 , "speed" : 1 } , chance : 0.02 } ,
"excreted_poop" : { elem2 : "digested_material" , attr2 : { "nutrition" : 25 } , chance : 0.02 } ,
2025-01-06 18:31:08 -05:00
"urine" : { elem2 : "gaseous_material" , attr2 : { "nutrition" : 5 , "speed" : 1 } , chance : 0.02 } ,
"tea" : { elem2 : "digested_material" , attr2 : { "nutrition" : 10 , "speed" : 10 } , chance : 0.02 } ,
2024-12-27 23:49:11 -05:00
"dead_bug" : { elem2 : "digested_material" , attr2 : { "nutrition" : 35 , "speed" : 5 } , chance : 0.02 } ,
} ,
category : "nutrition" ,
tempHigh : 110 ,
stateHigh : "acid_gas" ,
tempLow : - 58.88 ,
burn : 30 ,
burnTime : 1 ,
state : "liquid" ,
2025-01-18 23:57:42 -05:00
density : 1550 ,
2025-01-18 19:19:52 -05:00
stain : - 0.1 ,
isAcid : true ,
2024-12-27 23:49:11 -05:00
}
elements . deoxygenated _water = {
color : "#829BD4" ,
behavior : behaviors . LIQUID ,
tempHigh : 100 ,
stateHigh : "steam" ,
tempLow : 0 ,
stateLow : "ice" ,
category : "liquids" ,
heatCapacity : 4.184 ,
reactions : {
"oxygen" : { elem1 : "water" , elem2 : null } ,
"dust" : { elem1 : "dirty_water" , elem2 : null } ,
"ash" : { elem1 : "dirty_water" , elem2 : null } ,
"cyanide" : { elem1 : "dirty_water" , elem2 : null } ,
"cyanide_gas" : { elem1 : "dirty_water" , elem2 : null } ,
"carbon_dioxide" : { elem1 : "seltzer" , elem2 : null , oneway : true } ,
"sulfur" : { elem1 : "dirty_water" , elem2 : null } ,
"rat" : { elem1 : "dirty_water" , chance : 0.005 } ,
"plague" : { elem1 : "dirty_water" , elem2 : null } ,
"rust" : { elem1 : "dirty_water" , chance : 0.005 } ,
"lead" : { elem1 : "dirty_water" , chance : 0.005 } ,
"solder" : { elem1 : "dirty_water" , chance : 0.005 } ,
"fallout" : { elem1 : "dirty_water" , chance : 0.25 } ,
"radiation" : { elem1 : "dirty_water" , chance : 0.25 } ,
"uranium" : { elem1 : "dirty_water" , chance : 0.25 } ,
"rad_steam" : { elem1 : "dirty_water" , chance : 0.02 } ,
"rad_glass" : { elem1 : "dirty_water" , chance : 0.005 } ,
"rad_shard" : { elem1 : "dirty_water" , chance : 0.01 } ,
"rotten_meat" : { elem1 : "dirty_water" , chance : 0.25 } ,
"rotten_cheese" : { elem1 : "dirty_water" , chance : 0.25 } ,
"cancer" : { elem1 : "dirty_water" , chance : 0.25 } ,
"oil" : { elem1 : "dirty_water" , chance : 0.005 } ,
"dioxin" : { elem1 : "dirty_water" , chance : 0.1 } ,
"rock" : { elem2 : "wet_sand" , chance : 0.00035 } ,
"limestone" : { elem2 : "wet_sand" , chance : 0.00035 } ,
"tuff" : { elem2 : "wet_sand" , color2 : "#7a6b5c" , chance : 0.00035 } ,
"ruins" : { elem2 : "rock" , chance : 0.00035 } ,
"mudstone" : { elem2 : "mud" , chance : 0.00035 } ,
"fly" : { elem2 : "dead_bug" , chance : 0.1 , oneway : true } ,
"firefly" : { elem2 : "dead_bug" , chance : 0.1 , oneway : true } ,
"bee" : { elem2 : "dead_bug" , chance : 0.05 , oneway : true } ,
"stink_bug" : { elem2 : "dead_bug" , chance : 0.1 , oneway : true } ,
2025-01-18 19:19:52 -05:00
"cured_meat" : { elem1 : "salt_water" , elem2 : "meat" } ,
2024-12-27 23:49:11 -05:00
"water" : { elem1 : "water" , chance : 0.005 } ,
"salt_water" : { elem1 : "water" , chance : 0.005 } ,
"deoxygenated_water" : { elem2 : "bubble" , attr2 : { "clone" : "water" } , chance : 0.001 , tempMin : 85 } ,
} ,
state : "liquid" ,
density : 1100 ,
conduct : 0.02 ,
stain : - 0.5 ,
extinguish : true
}
elements . real _bone = {
color : "#d9d9d9" ,
behavior : behaviors . WALL ,
reactions : {
"water" : { elem2 : "broth" , tempMin : 70 } ,
2025-01-18 19:19:52 -05:00
"salt_water" : { elem2 : "broth" , tempMin : 70 } ,
"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 ) {
doBioBone ( pixel ) ;
doDefaults ( pixel ) ;
2024-11-27 23:13:34 -05:00
} ,
2024-12-27 23:49:11 -05:00
category : "structural" ,
tempHigh : 260 ,
stateHigh : "bone" ,
tempLow : - 36 ,
stateLow : "bone" ,
state : "solid" ,
density : 1900 ,
hardness : 0.5 ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2024-12-27 23:49:11 -05:00
} ,
2025-01-18 19:19:52 -05:00
breakInto : [ "real_bone_marrow" , "real_bone_marrow" , "blood" , "bone" , "bone" , "bone" , "bone" , "bone" , "bone" , "bone" , "bone" , "bone" , "bone" , "bone" , "bone" ] ,
2024-12-27 23:49:11 -05:00
movable : false ,
isBio : true ,
burn : 1 ,
burnTime : 100 ,
burnInto : [ "bone" , "bone" , "bone" , "bone" , "quicklime" ] ,
2024-11-27 23:13:34 -05:00
}
2024-12-27 23:49:11 -05:00
elements . real _bone _marrow = {
color : "#D3A491" ,
category : "structural" ,
behavior : behaviors . WALL ,
2025-01-18 19:19:52 -05:00
nutrTrans : 15 ,
oxygTrans : 15 ,
isMultiDie : true ,
normDie : "meat" ,
roomDie : "rotten_meat" ,
coldDie : "frozen_meat" ,
heatDie : "cooked_meat" ,
2024-12-27 23:49:11 -05:00
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.005 ) {
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 ( "real_bone" , x , y ) ;
}
}
}
2025-01-18 19:19:52 -05:00
doBioNorm ( pixel ) ;
2024-12-27 23:49:11 -05:00
doDefaults ( pixel ) ;
if ( ! isEmpty ( pixel . x , pixel . y - 1 , true ) ) {
var hitPixel = pixelMap [ pixel . x ] [ pixel . y - 1 ]
2025-01-18 19:19:52 -05:00
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 ;
2024-12-27 23:49:11 -05:00
}
}
}
if ( ! isEmpty ( pixel . x , pixel . y + 1 , true ) ) {
var hitPixel = pixelMap [ pixel . x ] [ pixel . y + 1 ]
2025-01-18 19:19:52 -05:00
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 ;
2024-12-27 23:49:11 -05:00
}
}
}
if ( ! isEmpty ( pixel . x - 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x - 1 ] [ pixel . y ]
2025-01-18 19:19:52 -05:00
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 ;
2024-12-27 23:49:11 -05:00
}
}
}
if ( ! isEmpty ( pixel . x + 1 , pixel . y , true ) ) {
var hitPixel = pixelMap [ pixel . x + 1 ] [ pixel . y ]
2025-01-18 19:19:52 -05:00
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 ;
2024-12-27 23:49:11 -05:00
}
}
}
2024-11-27 23:13:34 -05:00
} ,
2024-12-27 23:49:11 -05:00
density : 2710 ,
state : "solid" ,
conduct : . 001 ,
tempHigh : 350 ,
stateHigh : "cooked_meat" ,
tempLow : - 40 ,
stateLow : "frozen_meat" ,
burn : 5 ,
burnTime : 400 ,
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" ] ,
hardness : 0.2 ,
forceSaveColor : true ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "meat" , "rotten_meat" , "cooked_meat" , "flesh" ] , chance : 0.2 } ,
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-12-27 23:49:11 -05:00
} ,
2025-01-18 19:19:52 -05:00
extinguish : true ,
2024-12-27 23:49:11 -05:00
isBio : true ,
2025-01-18 19:19:52 -05:00
renderer : renderPresets . FLESHBURN ,
2024-12-27 23:49:11 -05:00
movable : false ,
2024-11-25 23:09:06 -05:00
}
2025-01-02 22:06:28 -05:00
elements . cartilage = {
color : "#DBDBDB" ,
behavior : behaviors . WALL ,
2025-01-18 19:19:52 -05:00
nutrTrans : 5 ,
oxygTrans : 5 ,
isMultiDie : false ,
normDie : "quicklime" ,
otherDie : "water" ,
2025-01-02 22:06:28 -05:00
hoverStat : function ( pixel ) {
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
} ,
tick : function ( pixel ) {
2025-01-18 19:19:52 -05:00
doBioBone ( pixel ) ;
doDefaults ( pixel ) ;
2025-01-02 22:06:28 -05:00
} ,
category : "structural" ,
tempHigh : 200 ,
stateHigh : [ "calcium" , "glue" , "steam" , "steam" , "meat" , "steam" , null ] ,
tempLow : - 36 ,
stateLow : [ "calcium" , "calcium" , "meat" , "water" , "water" , "water" , null ] ,
state : "solid" ,
density : 1900 ,
hardness : 0.05 ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2025-01-02 22:06:28 -05:00
} ,
breakInto : [ "quicklime" , "calcium" , "meat" , "meat" , "water" , "water" , null ] ,
movable : false ,
isBio : true ,
2025-01-18 19:19:52 -05:00
renderer : renderPresets . FLESHBURN ,
2025-01-02 22:06:28 -05:00
burn : 1 ,
burnTime : 100 ,
burnInto : [ "bone" , "bone" , "bone" , "bone" , "quicklime" ] ,
}
2024-12-27 23:49:11 -05:00
elements . cerebrospinal _fluid = {
color : "#CBC3E3" ,
behavior : behaviors . LIQUID ,
tick : function ( pixel ) {
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
}
2025-01-12 21:16:03 -05:00
if ( pixel . immune === true && pixel . poisoned != false ) {
pixel . poisoned = false
}
2025-01-18 19:19:52 -05:00
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
}
2024-12-27 23:49:11 -05:00
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 ) {
2025-01-18 19:19:52 -05:00
hitPixel . oxygen += 15
pixel . oxygen -= 15
2024-12-27 23:49:11 -05:00
}
if ( hitPixel . nutrition < pixel . nutrition ) {
hitPixel . nutrition += 10
pixel . nutrition -= 10
}
if ( hitPixel . speed < pixel . speed ) {
hitPixel . speed += 1
pixel . speed -= 1
}
2025-01-12 21:16:03 -05:00
if ( hitPixel . poisoned != true && pixel . poisoned == true ) {
hitPixel . poisoned = true
}
if ( hitPixel . immune != true && pixel . immune == true ) {
hitPixel . poisoned = false
hitPixel . immune = true
}
2025-01-18 19:19:52 -05:00
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
}
2024-12-27 23:49:11 -05:00
}
}
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 ) {
2025-01-18 19:19:52 -05:00
hitPixel . oxygen += 15
pixel . oxygen -= 15
2024-12-27 23:49:11 -05:00
}
if ( hitPixel . nutrition < pixel . nutrition ) {
hitPixel . nutrition += 10
pixel . nutrition -= 10
}
if ( hitPixel . speed < pixel . speed ) {
hitPixel . speed += 1
pixel . speed -= 1
}
2025-01-12 21:16:03 -05:00
if ( hitPixel . poisoned != true && pixel . poisoned == true ) {
hitPixel . poisoned = true
}
if ( hitPixel . immune != true && pixel . immune == true ) {
hitPixel . poisoned = false
hitPixel . immune = true
}
2025-01-18 19:19:52 -05:00
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
}
2024-12-27 23:49:11 -05:00
}
}
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 ) {
2025-01-18 19:19:52 -05:00
hitPixel . oxygen += 15
pixel . oxygen -= 15
2024-12-27 23:49:11 -05:00
}
if ( hitPixel . nutrition < pixel . nutrition ) {
hitPixel . nutrition += 10
pixel . nutrition -= 10
}
if ( hitPixel . speed < pixel . speed ) {
hitPixel . speed += 1
pixel . speed -= 1
}
2025-01-12 21:16:03 -05:00
if ( hitPixel . poisoned != true && pixel . poisoned == true ) {
hitPixel . poisoned = true
}
if ( hitPixel . immune != true && pixel . immune == true ) {
hitPixel . poisoned = false
hitPixel . immune = true
}
2025-01-18 19:19:52 -05:00
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
}
2024-12-27 23:49:11 -05:00
}
}
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 ) {
2025-01-18 19:19:52 -05:00
hitPixel . oxygen += 15
pixel . oxygen -= 15
2024-12-27 23:49:11 -05:00
}
if ( hitPixel . nutrition < pixel . nutrition ) {
hitPixel . nutrition += 10
pixel . nutrition -= 10
}
if ( hitPixel . speed < pixel . speed ) {
hitPixel . speed += 1
pixel . speed -= 1
}
2025-01-12 21:16:03 -05:00
if ( hitPixel . poisoned != true && pixel . poisoned == true ) {
hitPixel . poisoned = true
}
if ( hitPixel . immune != true && pixel . immune == true ) {
hitPixel . poisoned = false
hitPixel . immune = true
}
2025-01-18 19:19:52 -05:00
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
}
2024-12-27 23:49:11 -05:00
}
}
} ,
tempHigh : 102 ,
stateHigh : [ "steam" , "salt" ] ,
tempLow : - 5 ,
category : "nervous system" ,
2024-11-26 14:30:30 -05:00
reactions : {
2024-12-27 23:49:11 -05:00
"dust" : { elem1 : "dirty_water" , elem2 : null } ,
"ash" : { elem1 : "dirty_water" , elem2 : null } ,
"carbon_dioxide" : { elem1 : "dirty_water" , elem2 : null } ,
"sulfur" : { elem1 : "dirty_water" , elem2 : null } ,
"rat" : { elem1 : "dirty_water" , chance : 0.005 } ,
"plague" : { elem1 : "dirty_water" , elem2 : null } ,
"fallout" : { elem1 : "dirty_water" , chance : 0.25 } ,
"radiation" : { elem1 : "dirty_water" , chance : 0.25 } ,
"rust" : { elem1 : "dirty_water" , chance : 0.005 } ,
"lead" : { elem1 : "dirty_water" , chance : 0.005 } ,
"solder" : { elem1 : "dirty_water" , chance : 0.005 } ,
"rock" : { elem2 : "wet_sand" , chance : 0.0005 } ,
"limestone" : { elem2 : "wet_sand" , chance : 0.0005 } ,
"fly" : { elem2 : "dead_bug" , chance : 0.1 , oneway : true } ,
"firefly" : { elem2 : "dead_bug" , chance : 0.1 , oneway : true } ,
"bee" : { elem2 : "dead_bug" , chance : 0.05 , oneway : true } ,
"stink_bug" : { elem2 : "dead_bug" , chance : 0.1 , oneway : true } ,
"cancer" : { elem1 : "dirty_water" , chance : 0.25 } ,
"oil" : { elem1 : "dirty_water" , chance : 0.005 } ,
"uranium" : { elem1 : "dirty_water" , chance : 0.25 } ,
"wet_sand" : { oneway : true , chance : 0.007 , func : function ( pixel ) {
if ( isEmpty ( pixel . x , pixel . y - 1 ) || isEmpty ( pixel . x , pixel . y - 2 ) || isEmpty ( pixel . x , pixel . y - 3 ) ) {
changePixel ( pixel , "foam" ) ;
pixel . clone = "salt_water" ;
}
} } ,
"salt_water" : { elem2 : "bubble" , attr2 : { "clone" : "salt_water" } , chance : 0.001 , tempMin : 85 } ,
// electrolysis:
"aluminum" : { elem1 : [ "hydrogen" , "hydrogen" , "oxygen" , "chlorine" ] , charged : true , chance : 0.0025 } ,
"zinc" : { elem1 : [ "hydrogen" , "hydrogen" , "oxygen" , "chlorine" ] , charged : true , chance : 0.015 } ,
"steel" : { elem1 : [ "hydrogen" , "hydrogen" , "oxygen" , "chlorine" ] , charged : true , chance : 0.0125 } ,
"iron" : { elem1 : [ "hydrogen" , "hydrogen" , "oxygen" , "chlorine" ] , charged : true , chance : 0.0125 } ,
"tin" : { elem1 : [ "hydrogen" , "hydrogen" , "oxygen" , "chlorine" ] , charged : true , chance : 0.01 } ,
"brass" : { elem1 : [ "hydrogen" , "hydrogen" , "oxygen" , "chlorine" ] , charged : true , chance : 0.001 } ,
"bronze" : { elem1 : [ "hydrogen" , "hydrogen" , "oxygen" , "chlorine" ] , charged : true , chance : 0.001 } ,
"copper" : { elem1 : [ "hydrogen" , "hydrogen" , "oxygen" , "chlorine" ] , charged : true , chance : 0.0075 } ,
"silver" : { elem1 : [ "hydrogen" , "hydrogen" , "oxygen" , "chlorine" ] , charged : true , chance : 0.0075 } ,
"gold" : { elem1 : [ "hydrogen" , "hydrogen" , "oxygen" , "chlorine" ] , charged : true , chance : 0.0075 } ,
2024-11-26 14:30:30 -05:00
} ,
state : "liquid" ,
2024-12-27 23:49:11 -05:00
density : 1026 ,
stain : - 0.01 ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-12-27 23:49:11 -05:00
} ,
extinguish : true ,
2025-01-18 19:19:52 -05:00
isBio : true ,
renderer : renderPresets . FLESHBURN ,
2024-11-26 14:30:30 -05:00
}
2025-01-06 18:31:08 -05:00
elements . urine = {
color : [ "#E9BE3C" , "#D0B937" ] ,
behavior : behaviors . LIQUID ,
tempHigh : 102 ,
stateHigh : [ "steam" , "salt" ] ,
tempLow : - 2 ,
stateLowName : "pee_ice" ,
category : "liquids" ,
reactions : {
2025-01-12 21:16:03 -05:00
"sand" : { elem1 : null , elem2 : "wet_sand" , chance : 0.02 } ,
2025-01-06 18:31:08 -05:00
"dust" : { elem1 : "dirty_water" , elem2 : null } ,
"ash" : { elem1 : "dirty_water" , elem2 : null } ,
"carbon_dioxide" : { elem1 : "dirty_water" , elem2 : null } ,
"sulfur" : { elem1 : "dirty_water" , elem2 : null } ,
"rat" : { elem1 : "dirty_water" , chance : 0.005 } ,
"plague" : { elem1 : "dirty_water" , elem2 : null } ,
"fallout" : { elem1 : "dirty_water" , chance : 0.25 } ,
"radiation" : { elem1 : "dirty_water" , chance : 0.25 } ,
"rust" : { elem1 : "dirty_water" , chance : 0.005 } ,
"lead" : { elem1 : "dirty_water" , chance : 0.005 } ,
"solder" : { elem1 : "dirty_water" , chance : 0.005 } ,
"rock" : { elem2 : "wet_sand" , chance : 0.0005 } ,
"limestone" : { elem2 : "wet_sand" , chance : 0.0005 } ,
"fly" : { elem2 : "dead_bug" , chance : 0.1 , oneway : true } ,
"firefly" : { elem2 : "dead_bug" , chance : 0.1 , oneway : true } ,
"bee" : { elem2 : "dead_bug" , chance : 0.05 , oneway : true } ,
"stink_bug" : { elem2 : "dead_bug" , chance : 0.1 , oneway : true } ,
"cancer" : { elem1 : "dirty_water" , chance : 0.25 } ,
"oil" : { elem1 : "dirty_water" , chance : 0.005 } ,
"uranium" : { elem1 : "dirty_water" , chance : 0.25 } ,
"wet_sand" : { oneway : true , chance : 0.007 , func : function ( pixel ) {
if ( isEmpty ( pixel . x , pixel . y - 1 ) || isEmpty ( pixel . x , pixel . y - 2 ) || isEmpty ( pixel . x , pixel . y - 3 ) ) {
changePixel ( pixel , "foam" ) ;
pixel . clone = "salt_water" ;
}
} } ,
"salt_water" : { elem2 : "bubble" , attr2 : { "clone" : "salt_water" } , chance : 0.001 , tempMin : 85 } ,
// electrolysis:
"aluminum" : { elem1 : [ "hydrogen" , "hydrogen" , "oxygen" , "chlorine" , "salt" ] , charged : true , chance : 0.0025 } ,
"zinc" : { elem1 : [ "hydrogen" , "hydrogen" , "oxygen" , "chlorine" , "salt" ] , charged : true , chance : 0.015 } ,
"steel" : { elem1 : [ "hydrogen" , "hydrogen" , "oxygen" , "chlorine" , "salt" ] , charged : true , chance : 0.0125 } ,
"iron" : { elem1 : [ "hydrogen" , "hydrogen" , "oxygen" , "chlorine" , "salt" ] , charged : true , chance : 0.0125 } ,
"tin" : { elem1 : [ "hydrogen" , "hydrogen" , "oxygen" , "chlorine" , "salt" ] , charged : true , chance : 0.01 } ,
"brass" : { elem1 : [ "hydrogen" , "hydrogen" , "oxygen" , "chlorine" , "salt" ] , charged : true , chance : 0.001 } ,
"bronze" : { elem1 : [ "hydrogen" , "hydrogen" , "oxygen" , "chlorine" , "salt" ] , charged : true , chance : 0.001 } ,
"copper" : { elem1 : [ "hydrogen" , "hydrogen" , "oxygen" , "chlorine" , "salt" ] , charged : true , chance : 0.0075 } ,
"silver" : { elem1 : [ "hydrogen" , "hydrogen" , "oxygen" , "chlorine" , "salt" ] , charged : true , chance : 0.0075 } ,
"gold" : { elem1 : [ "hydrogen" , "hydrogen" , "oxygen" , "chlorine" , "salt" ] , charged : true , chance : 0.0075 } ,
} ,
state : "liquid" ,
density : 1026 ,
conduct : 0.1 ,
stain : 0.01 ,
stainSelf : true ,
isWaste : true ,
extinguish : true
}
2024-12-27 23:49:11 -05:00
elements . elixir = {
color : "#8CB6AA" ,
behavior : behaviors . LIQUID ,
2024-12-03 19:43:00 -05:00
reactions : {
2024-12-27 23:49:11 -05:00
"dirt" : { elem2 : "mud" , elem1 : null } ,
"dust" : { elem1 : "dirty_water" , elem2 : null } ,
"ash" : { elem1 : "dirty_water" , elem2 : null } ,
"carbon_dioxide" : { elem1 : "dirty_water" , elem2 : null } ,
"sulfur" : { elem1 : "dirty_water" , elem2 : null } ,
"rat" : { elem1 : "dirty_water" , chance : 0.005 } ,
"plague" : { elem1 : "dirty_water" , elem2 : null } ,
"fallout" : { elem1 : "dirty_water" , chance : 0.25 } ,
"radiation" : { elem1 : "dirty_water" , chance : 0.25 } ,
"rust" : { elem1 : "dirty_water" , chance : 0.005 } ,
"lead" : { elem1 : "dirty_water" , chance : 0.005 } ,
"solder" : { elem1 : "dirty_water" , chance : 0.005 } ,
"rock" : { elem2 : "wet_sand" , chance : 0.0005 } ,
"limestone" : { elem2 : "wet_sand" , chance : 0.0005 } ,
"fly" : { elem2 : "dead_bug" , chance : 0.1 , oneway : true } ,
"firefly" : { elem2 : "dead_bug" , chance : 0.1 , oneway : true } ,
"bee" : { elem2 : "dead_bug" , chance : 0.05 , oneway : true } ,
"stink_bug" : { elem2 : "dead_bug" , chance : 0.1 , oneway : true } ,
"cancer" : { elem1 : "dirty_water" , chance : 0.25 } ,
"oil" : { elem1 : "dirty_water" , chance : 0.005 } ,
"uranium" : { elem1 : "dirty_water" , chance : 0.25 } ,
"cerebrospinal_fluid" : { elem1 : "brain_jar_juice" , elem2 : "brain_jar_juice" , chance : 0.01 } ,
2024-12-03 19:43:00 -05:00
} ,
2024-12-27 23:49:11 -05:00
viscosity : 4000 ,
tempHigh : 120 ,
stateHigh : [ "steam" , "steam" , "dna" , "dna" , "stench" , "salt" , ] ,
tempLow : 0 ,
category : "liquids" ,
2024-12-03 19:43:00 -05:00
state : "liquid" ,
2024-12-27 23:49:11 -05:00
density : 1450 ,
stain : 0.05 ,
hidden : true ,
2024-12-03 19:43:00 -05:00
}
2024-12-27 23:49:11 -05:00
elements . brain _jar _juice = {
color : "#4F8C24" ,
2024-11-26 12:06:53 -05:00
behavior : behaviors . LIQUID ,
2024-12-27 23:49:11 -05:00
hidden : true ,
tick : function ( pixel ) {
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
}
2025-01-12 21:16:03 -05:00
if ( pixel . immune === true && pixel . poisoned != false ) {
pixel . poisoned = false
}
2025-01-18 19:19:52 -05:00
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
}
2024-12-27 23:49:11 -05:00
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 += 1
}
if ( hitPixel . nutrition < pixel . nutrition ) {
hitPixel . nutrition += 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 += 1
}
if ( hitPixel . nutrition < pixel . nutrition ) {
hitPixel . nutrition += 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 += 1
}
if ( hitPixel . nutrition < pixel . nutrition ) {
hitPixel . nutrition += 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 += 1
}
if ( hitPixel . nutrition < pixel . nutrition ) {
hitPixel . nutrition += 1
}
}
}
} ,
tempHigh : 102 ,
stateHigh : [ "steam" , "steam" , "dna" , "dna" , "stench" , "salt" , ] ,
tempLow : - 5 ,
category : "circulation" ,
2024-11-26 12:06:53 -05:00
reactions : {
"dust" : { elem1 : "dirty_water" , elem2 : null } ,
"ash" : { elem1 : "dirty_water" , elem2 : null } ,
2024-12-27 23:49:11 -05:00
"carbon_dioxide" : { elem1 : "dirty_water" , elem2 : null } ,
2024-11-26 12:06:53 -05:00
"sulfur" : { elem1 : "dirty_water" , elem2 : null } ,
"rat" : { elem1 : "dirty_water" , chance : 0.005 } ,
"plague" : { elem1 : "dirty_water" , elem2 : null } ,
"fallout" : { elem1 : "dirty_water" , chance : 0.25 } ,
"radiation" : { elem1 : "dirty_water" , chance : 0.25 } ,
2024-12-27 23:49:11 -05:00
"rust" : { elem1 : "dirty_water" , chance : 0.005 } ,
"lead" : { elem1 : "dirty_water" , chance : 0.005 } ,
"solder" : { elem1 : "dirty_water" , chance : 0.005 } ,
"rock" : { elem2 : "wet_sand" , chance : 0.0005 } ,
"limestone" : { elem2 : "wet_sand" , chance : 0.0005 } ,
2024-11-26 12:06:53 -05:00
"fly" : { elem2 : "dead_bug" , chance : 0.1 , oneway : true } ,
"firefly" : { elem2 : "dead_bug" , chance : 0.1 , oneway : true } ,
"bee" : { elem2 : "dead_bug" , chance : 0.05 , oneway : true } ,
"stink_bug" : { elem2 : "dead_bug" , chance : 0.1 , oneway : true } ,
2024-12-27 23:49:11 -05:00
"cancer" : { elem1 : "dirty_water" , chance : 0.25 } ,
"oil" : { elem1 : "dirty_water" , chance : 0.005 } ,
"uranium" : { elem1 : "dirty_water" , chance : 0.25 } ,
"wet_sand" : { oneway : true , chance : 0.007 , func : function ( pixel ) {
if ( isEmpty ( pixel . x , pixel . y - 1 ) || isEmpty ( pixel . x , pixel . y - 2 ) || isEmpty ( pixel . x , pixel . y - 3 ) ) {
changePixel ( pixel , "foam" ) ;
pixel . clone = "salt_water" ;
}
} } ,
2025-01-02 22:06:28 -05:00
"brain_jar_juice" : { elem2 : "bubble" , color2 : "#81cf63" , attr2 : { "clone" : "brain_jar_juice" } , chance : 0.00005 } ,
2024-11-26 12:06:53 -05:00
} ,
state : "liquid" ,
2024-12-27 23:49:11 -05:00
density : 1026 ,
stain : - 0.01 ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-12-27 23:49:11 -05:00
} ,
2024-11-26 12:06:53 -05:00
extinguish : true
}
2024-12-27 23:49:11 -05:00
elements . bacteria = {
color : "#769356" ,
behavior : [
"XX|SW:poop,dirty_water%5 AND M2%0.5|M2%5 AND SW:poop,dirty_water%5" ,
"XX|FX%2|M2%5 AND SW:poop,dirty_water%5 AND BO" ,
"XX|M1 AND SW:poop,dirty_water%5|M2%5 AND SW:poop,dirty_water%5" ,
] ,
2024-11-25 23:09:06 -05:00
reactions : {
2024-12-27 23:49:11 -05:00
"sphincter" : { elem2 : null , chance : 0.01 , func : behaviors . FEEDPIXEL } ,
"flesh" : { elem2 : null , chance : 0.02 , func : behaviors . FEEDPIXEL } ,
"intestine" : { elem2 : null , chance : 0.01 , func : behaviors . FEEDPIXEL } ,
"blood_vessel" : { elem2 : null , chance : 0.02 , func : behaviors . FEEDPIXEL } ,
"dermis" : { elem2 : null , chance : 0.02 , func : behaviors . FEEDPIXEL } ,
"scale_dermis" : { elem2 : null , chance : 0.01 , func : behaviors . FEEDPIXEL } ,
"bug_dermis" : { elem2 : null , chance : 0.01 , func : behaviors . FEEDPIXEL } ,
"lungs" : { elem2 : null , chance : 0.02 , func : behaviors . FEEDPIXEL } ,
"rotten_meat" : { elem2 : null , chance : 0.05 , func : behaviors . FEEDPIXEL } ,
"poop" : { elem2 : [ null , null , null , null , "poop" ] , chance : 0.05 , func : behaviors . FEEDPIXEL } ,
"rotten_cheese" : { elem2 : null , chance : 0.05 , func : behaviors . FEEDPIXEL } ,
"cheese" : { elem2 : "rotten_cheese" , chance : 0.5 , func : behaviors . FEEDPIXEL } ,
"meat" : { elem2 : "rotten_meat" , chance : 0.5 , func : behaviors . FEEDPIXEL } ,
2025-01-18 19:19:52 -05:00
"cured_meat" : { elem1 : [ null , null , null , null , null , null , null , null , null , "dna" ] , chance : 0.01 } ,
2024-12-27 23:49:11 -05:00
"dead_plant" : { elem2 : "dirt" , chance : 0.05 , func : behaviors . FEEDPIXEL } ,
"dead_bug" : { elem2 : null , chance : 0.02 , func : behaviors . FEEDPIXEL } ,
"mercury" : { elem1 : [ null , null , null , null , null , null , null , null , null , "dna" ] , chance : 0.1 } ,
"bleach" : { elem1 : [ null , null , null , null , null , null , null , null , null , "dna" ] , chance : 0.1 } ,
"uranium" : { elem1 : [ null , null , null , null , null , null , null , null , null , "dna" ] , chance : 0.1 } ,
"cyanide" : { elem1 : [ null , null , null , null , null , null , null , null , null , "dna" ] , chance : 0.1 } ,
"chlorine" : { elem1 : [ null , null , null , null , null , null , null , null , null , "dna" ] , chance : 0.1 } ,
"alcohol" : { elem1 : [ null , null , null , null , null , null , null , null , null , "dna" ] , chance : 0.25 } ,
"water" : { elem1 : null , elem2 : "dirty_water" , chance : 0.01 } ,
"blood" : { elem1 : null , elem2 : "infection" , chance : 0.01 } ,
"salt_water" : { elem1 : null , elem2 : "dirty_water" , chance : 0.01 } ,
"sugar_water" : { elem1 : null , elem2 : "dirty_water" , chance : 0.01 , func : behaviors . FEEDPIXEL } ,
"pool_water" : { elem1 : [ null , null , null , null , null , null , null , null , null , "dna" ] , elem2 : "water" , chance : 0.005 } ,
"vinegar" : { elem1 : [ null , null , null , null , null , null , null , null , null , "dna" ] , chance : 0.001 } ,
"mouthwash" : { elem1 : [ null , null , null , null , null , null , null , null , null , "dna" ] , chance : 0.01 } ,
} ,
foodNeed : 15 ,
egg : "bacteria" ,
tempHigh : 100 ,
stateHigh : [ "dna" , "dna" , "dna" , "dna" , "dna" , "dna" , "carbon_dioxide" , "steam" ] ,
tempLow : 0 ,
stateLow : "dna" ,
breakInto : "dna" ,
category : "life" ,
burn : 95 ,
burnTime : 100 ,
burnInto : [ "dna" , "dna" , "dna" , "dna" , "dna" , "smoke" , "carbon_dioxide" , "steam" ] ,
state : "solid" ,
density : 600 ,
conduct : . 1
}
elements . tract = {
2025-01-06 18:31:08 -05:00
name : "bio-pipe" ,
2024-12-27 23:49:11 -05:00
color : [ "#7C4941" , "#83594C" ] ,
onSelect : function ( ) {
logMessage ( "Draw a pipe, wait for walls to appear, then erase the exit hole." ) ;
2024-11-25 23:09:06 -05:00
} ,
2025-01-18 19:19:52 -05:00
nutrTrans : 15 ,
oxygTrans : 15 ,
isMultiDie : true ,
normDie : "meat" ,
roomDie : "rotten_meat" ,
coldDie : "frozen_meat" ,
heatDie : "cooked_meat" ,
2024-11-25 23:09:06 -05:00
hoverStat : function ( pixel ) {
2024-12-10 19:53:59 -05:00
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
2024-11-25 23:09:06 -05:00
} ,
tick : function ( pixel ) {
2025-01-18 19:19:52 -05:00
doBioNorm ( pixel ) ;
doDefaults ( pixel ) ;
2024-12-27 23:49:11 -05:00
if ( ! pixel . stage && pixelTicks - pixel . start > 60 ) {
for ( var i = 0 ; i < squareCoords . length ; i ++ ) {
var coord = squareCoords [ i ] ;
var x = pixel . x + coord [ 0 ] ;
var y = pixel . y + coord [ 1 ] ;
if ( ! isEmpty ( x , y , true ) && elements [ pixelMap [ x ] [ y ] . element ] . movable ) {
deletePixel ( x , y )
}
if ( isEmpty ( x , y ) ) {
createPixel ( "flesh" , x , y ) ;
}
}
pixel . stage = 1 ;
}
else if ( pixel . stage === 1 && pixelTicks - pixel . start > 70 ) { //uninitialized
for ( var i = 0 ; i < squareCoords . length ; i ++ ) {
var coord = squareCoords [ i ] ;
var x = pixel . x + coord [ 0 ] ;
var y = pixel . y + coord [ 1 ] ;
if ( isEmpty ( x , y ) ) {
pixel . stage = 2 ; //blue
pixel . color = pixelColorPick ( pixel , "#552D3F" ) ;
break ;
}
}
}
else if ( pixel . stage > 1 && pixelTicks % 3 === pixel . stage - 2 ) { //initialized
for ( var i = 0 ; i < squareCoords . length ; i ++ ) {
var coord = squareCoords [ i ] ;
var x = pixel . x + coord [ 0 ] ;
var y = pixel . y + coord [ 1 ] ;
if ( ! isEmpty ( x , y , true ) && pixelMap [ x ] [ y ] . element === "tract" ) {
var newPixel = pixelMap [ x ] [ y ] ;
if ( newPixel . stage === 1 ) {
var newColor ;
switch ( pixel . stage ) {
case 2 : newPixel . stage = 3 ; newColor = "#554B21" ; break ; //green
case 3 : newPixel . stage = 4 ; newColor = "#66241B" ; break ; //red
case 4 : newPixel . stage = 2 ; newColor = "#552D3F" ; break ; //blue
}
newPixel . color = pixelColorPick ( newPixel , newColor ) ;
}
}
}
var moved = false ;
shuffleArray ( squareCoordsShuffle ) ;
for ( var i = 0 ; i < squareCoordsShuffle . length ; i ++ ) {
var coord = squareCoordsShuffle [ i ] ;
var x = pixel . x + coord [ 0 ] ;
var y = pixel . y + coord [ 1 ] ;
if ( ! isEmpty ( x , y , true ) ) {
var newPixel = pixelMap [ x ] [ y ] ;
if ( newPixel . element === "tract" ) {
var nextStage ;
switch ( pixel . stage ) {
case 2 : nextStage = 4 ; break ; //green
case 3 : nextStage = 2 ; break ; //red
case 4 : nextStage = 3 ; break ; //blue
}
if ( pixel . con && ! newPixel . con && newPixel . stage === nextStage && Math . random ( ) > ( 1 - ( ( pixel . nutrition + pixel . oxygen + pixel . speed ) / 2050 ) ) ) { //transfer to adjacent pipe
newPixel . con = pixel . con ;
newPixel . con . x = newPixel . x ;
newPixel . con . y = newPixel . y ;
pixel . con = null ;
moved = true ;
break ;
}
}
else if ( ! pixel . con && elements [ newPixel . element ] . movable ) { //suck up pixel
pixel . con = newPixel ;
deletePixel ( newPixel . x , newPixel . y ) ;
pixel . con . x = pixel . x ;
pixel . con . y = pixel . y ;
pixel . con . del ;
moved = true ;
break ;
}
}
}
if ( pixel . con && ! moved && Math . random ( ) > ( 1 - ( ( pixel . nutrition + pixel . oxygen + pixel . speed ) / 2050 ) ) ) { // move to same stage if none other
for ( var i = 0 ; i < squareCoordsShuffle . length ; i ++ ) {
var coord = squareCoordsShuffle [ i ] ;
var x = pixel . x + coord [ 0 ] ;
var y = pixel . y + coord [ 1 ] ;
if ( isEmpty ( x , y ) ) {
delete pixel . con . del ;
pixel . con . x = x ;
pixel . con . y = y ;
pixelMap [ x ] [ y ] = pixel . con ;
currentPixels . push ( pixel . con ) ;
pixel . con = null ;
break ;
}
if ( ! isEmpty ( x , y , true ) && pixelMap [ x ] [ y ] . element === "tract" ) {
var newPixel = pixelMap [ x ] [ y ] ;
if ( pixel . con && ! newPixel . con && newPixel . stage === pixel . stage ) {
newPixel . con = pixel . con ;
newPixel . con . x = newPixel . x ;
newPixel . con . y = newPixel . y ;
pixel . con = null ;
break ;
}
}
}
}
}
2024-11-25 23:09:06 -05:00
} ,
2024-12-27 23:49:11 -05:00
category : "structural" ,
movable : false ,
canContain : true ,
forceSaveColor : true ,
density : 2710 ,
2024-11-25 23:09:06 -05:00
state : "solid" ,
2024-12-27 23:49:11 -05:00
conduct : 1 ,
tempHigh : 200 ,
stateHigh : "cooked_meat" ,
tempLow : - 25 ,
stateLow : "frozen_meat" ,
burn : 5 ,
burnTime : 350 ,
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" ] ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "blood" , "fat" , "meat" , "rotten_meat" , "cooked_meat" ] , chance : 0.4 } ,
} ,
properties : {
2024-11-25 23:09:06 -05:00
oxygen : 1000 ,
nutrition : 1000 ,
2024-12-12 15:47:06 -05:00
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-11-25 23:09:06 -05:00
} ,
2024-12-27 23:49:11 -05:00
isBio : true ,
2025-01-18 19:19:52 -05:00
renderer : renderPresets . FLESHBURN ,
2024-11-25 23:09:06 -05:00
}
2024-12-27 23:49:11 -05:00
elements . biosensor = {
color : [ "#AD6770" , "#B0707D" ] ,
category : "nervous system" ,
2024-12-11 17:59:12 -05:00
behavior : behaviors . WALL ,
2025-01-18 19:19:52 -05:00
nutrTrans : 10 ,
oxygTrans : 10 ,
isMultiDie : true ,
normDie : "meat" ,
roomDie : "rotten_meat" ,
coldDie : "frozen_meat" ,
heatDie : "cooked_meat" ,
2024-12-11 17:59:12 -05:00
hoverStat : function ( pixel ) {
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
2025-01-18 19:19:52 -05:00
} ,
tick : function ( pixel ) {
for ( var i = 0 ; i < adjacentCoords . length ; i ++ ) {
var coords = adjacentCoords [ i ] ;
var x = pixel . x + coords [ 0 ] ;
var y = pixel . y + coords [ 1 ] ;
if ( ! isEmpty ( x , y , true ) ) {
var sensed = pixelMap [ x ] [ y ] ;
if ( sensed . con || elements [ sensed . element ] . movable && elements . biosensor . ignore . indexOf ( sensed . element ) === - 1 ) {
pixel . charge = 5 ;
break ;
2025-01-12 21:16:03 -05:00
}
2024-12-11 17:59:12 -05:00
}
}
2025-01-18 19:19:52 -05:00
doBioNorm ( pixel ) ;
2024-12-27 23:49:11 -05:00
doDefaults ( pixel ) ;
2024-12-11 17:59:12 -05:00
} ,
2024-12-27 23:49:11 -05:00
ignore : [ "flash" ] ,
2024-12-11 17:59:12 -05:00
density : 2710 ,
state : "solid" ,
2024-12-27 23:49:11 -05:00
conduct : 1 ,
tempHigh : 200 ,
2024-12-11 17:59:12 -05:00
stateHigh : "cooked_meat" ,
2024-12-27 23:49:11 -05:00
tempLow : - 25 ,
2024-12-11 17:59:12 -05:00
stateLow : "frozen_meat" ,
burn : 5 ,
2024-12-27 23:49:11 -05:00
burnTime : 350 ,
2024-12-11 17:59:12 -05:00
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" ] ,
reactions : {
2024-12-27 23:49:11 -05:00
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "blood" , "fat" , "meat" , "rotten_meat" , "cooked_meat" ] , chance : 0.4 } ,
2024-12-11 17:59:12 -05:00
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
2024-12-12 15:47:06 -05:00
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-12-11 17:59:12 -05:00
} ,
isBio : true ,
2025-01-18 19:19:52 -05:00
renderer : renderPresets . FLESHBURN ,
2024-12-11 17:59:12 -05:00
movable : false ,
}
2024-12-27 23:49:11 -05:00
elements . bioplate = {
color : [ "#AD6770" , "#B0707D" ] ,
category : "nervous system" ,
behavior : behaviors . WALL ,
2025-01-18 19:19:52 -05:00
nutrTrans : 10 ,
oxygTrans : 10 ,
isMultiDie : true ,
normDie : "meat" ,
roomDie : "rotten_meat" ,
coldDie : "frozen_meat" ,
heatDie : "cooked_meat" ,
2024-12-27 23:49:11 -05:00
hoverStat : function ( pixel ) {
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
} ,
2024-11-25 23:09:06 -05:00
tick : function ( pixel ) {
2024-12-27 23:49:11 -05:00
if ( ! isEmpty ( pixel . x , pixel . y - 1 , true ) ) {
if ( pixel . min && elements [ pixelMap [ pixel . x ] [ pixel . y - 1 ] . element ] . density < pixel . min ) { }
2025-01-06 18:31:08 -05:00
else if ( pixelMap [ pixel . x ] [ pixel . y - 1 ] . element != "bioplate" || pixelMap [ pixel . x ] [ pixel . y - 1 ] . on ) {
2024-12-27 23:49:11 -05:00
pixel . on = true ;
var coordsToShock = [
[ pixel . x , pixel . y + 1 ] ,
[ pixel . x + 1 , pixel . y ] ,
[ pixel . x - 1 , pixel . y ] ,
]
for ( var i = 0 ; i < coordsToShock . length ; i ++ ) {
var x = coordsToShock [ i ] [ 0 ] ;
var y = coordsToShock [ i ] [ 1 ] ;
if ( ! isEmpty ( x , y , true ) ) {
var newpixel = pixelMap [ x ] [ y ] ;
if ( elements [ newpixel . element ] . conduct ) {
newpixel . charge = 1 ;
}
}
}
}
}
else if ( pixel . on ) {
pixel . on = false ;
}
2025-01-18 19:19:52 -05:00
doBioNorm ( pixel ) ;
2024-12-27 23:49:11 -05:00
doDefaults ( pixel ) ;
2024-11-25 23:09:06 -05:00
} ,
2024-12-27 23:49:11 -05:00
ignore : [ "flash" ] ,
density : 2710 ,
state : "solid" ,
conduct : 1 ,
tempHigh : 200 ,
stateHigh : "cooked_meat" ,
tempLow : - 25 ,
stateLow : "frozen_meat" ,
burn : 5 ,
burnTime : 350 ,
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" ] ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "blood" , "fat" , "meat" , "rotten_meat" , "cooked_meat" ] , chance : 0.4 } ,
} ,
properties : {
2024-11-25 23:09:06 -05:00
oxygen : 1000 ,
nutrition : 1000 ,
2024-12-12 15:47:06 -05:00
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-11-25 23:09:06 -05:00
} ,
2024-12-27 23:49:11 -05:00
isBio : true ,
2025-01-18 19:19:52 -05:00
renderer : renderPresets . FLESHBURN ,
2024-12-27 23:49:11 -05:00
movable : false ,
2024-11-25 23:09:06 -05:00
}
2024-12-28 22:34:32 -05:00
elements . biocloner = {
color : [ "#BE9247" , "#C09850" ] ,
2025-01-18 19:19:52 -05:00
category : "nervous system" ,
behavior : behaviors . WALL ,
behaviorOn : [
"XX|BCF|XX" ,
"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 ) {
doBioNorm ( pixel ) ;
doDefaults ( pixel ) ;
2024-12-28 22:34:32 -05:00
if ( pixel . clone ) { return }
for ( var i = 0 ; i < adjacentCoords . length ; i ++ ) {
var coords = adjacentCoords [ i ] ;
var x = pixel . x + coords [ 0 ] ;
var y = pixel . y + coords [ 1 ] ;
if ( ! isEmpty ( x , y , true ) ) {
pixel . temp = pixelMap [ x ] [ y ] . temp ;
if ( pixelMap [ x ] [ y ] . clone ) { pixel . clone = pixelMap [ x ] [ y ] . clone ; break }
var element = pixelMap [ x ] [ y ] . element ;
if ( element === pixel . element || elements [ pixel . element ] . ignore . indexOf ( element ) !== - 1 && element !== "fuse" ) { continue }
pixel . clone = element ;
break ;
}
}
} ,
ignore : [ "cloner" , "slow_cloner" , "clone_powder" , "floating_cloner" , "wire" , "ewall" , "sensor" , "battery" , "fuse" , "nerve" , "flesh" ] ,
ignoreConduct : [ "fuse" ] ,
density : 2710 ,
state : "solid" ,
conduct : 1 ,
tempHigh : 200 ,
stateHigh : "cooked_meat" ,
tempLow : - 25 ,
stateLow : "frozen_meat" ,
burn : 5 ,
burnTime : 350 ,
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" ] ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "blood" , "fat" , "meat" , "rotten_meat" , "cooked_meat" ] , chance : 0.4 } ,
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-12-28 22:34:32 -05:00
} ,
isBio : true ,
2025-01-18 19:19:52 -05:00
renderer : renderPresets . FLESHBURN ,
2024-12-28 22:34:32 -05:00
movable : false ,
}
2024-12-27 23:49:11 -05:00
elements . valve = {
color : [ "#A9436A" , "#B64F71" ] ,
category : "nervous system" ,
behavior : behaviors . WALL ,
behaviorOn : [
"XX|DL:valve_extension|XX" ,
"DL:valve_extension|XX|DL:valve_extension" ,
"XX|DL:valve_extension|XX" ,
] ,
2025-01-18 19:19:52 -05:00
nutrTrans : 10 ,
oxygTrans : 10 ,
isMultiDie : true ,
normDie : "meat" ,
roomDie : "rotten_meat" ,
coldDie : "frozen_meat" ,
heatDie : "cooked_meat" ,
2024-12-27 23:49:11 -05:00
hoverStat : function ( pixel ) {
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
2024-11-26 14:30:30 -05:00
} ,
tick : function ( pixel ) {
2025-01-18 19:19:52 -05:00
doBioNorm ( pixel ) ;
doDefaults ( pixel ) ;
2024-12-27 23:49:11 -05:00
if ( pixel . charge || ! pixel . open ) {
pixel . openAge = 0
pixel . open = true
}
if ( pixel . open === true ) {
pixel . openAge ++
}
if ( pixel . openAge > 29 ) {
for ( var i = 0 ; i < adjacentCoords . length ; i ++ ) {
var coords = adjacentCoords [ i ] ;
var x = pixel . x + coords [ 0 ] ;
var y = pixel . y + coords [ 1 ] ;
if ( isEmpty ( x , y ) ) {
createPixel ( "valve_extension" , x , y ) ;
pixel . openAge = 0 ;
pixel . open = false ;
}
}
}
2024-11-26 14:30:30 -05:00
} ,
2024-12-27 23:49:11 -05:00
density : 2710 ,
state : "solid" ,
conduct : 1 ,
tempHigh : 200 ,
stateHigh : "cooked_meat" ,
tempLow : - 25 ,
stateLow : "frozen_meat" ,
burn : 5 ,
burnTime : 350 ,
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" ] ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "blood" , "fat" , "meat" , "rotten_meat" , "cooked_meat" ] , chance : 0.4 } ,
} ,
properties : {
2024-11-26 14:30:30 -05:00
oxygen : 1000 ,
nutrition : 1000 ,
2024-12-12 15:47:06 -05:00
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-11-26 14:30:30 -05:00
} ,
2024-12-27 23:49:11 -05:00
isBio : true ,
2025-01-18 19:19:52 -05:00
renderer : renderPresets . FLESHBURN ,
2024-12-27 23:49:11 -05:00
movable : false ,
2024-11-27 23:13:34 -05:00
}
2024-12-27 23:49:11 -05:00
elements . valve _extension = {
name : "valve" ,
color : [ "#9e4839" , "#ba6449" ] ,
category : "nervous system" ,
behavior : behaviors . WALL ,
2025-01-18 19:19:52 -05:00
nutrTrans : 10 ,
oxygTrans : 10 ,
isMultiDie : true ,
normDie : "meat" ,
roomDie : "rotten_meat" ,
coldDie : "frozen_meat" ,
heatDie : "cooked_meat" ,
2024-12-03 19:43:00 -05:00
hoverStat : function ( pixel ) {
2024-12-10 19:53:59 -05:00
return "Ntr:" + pixel . nutrition + " O2:" + pixel . oxygen
2024-12-03 19:43:00 -05:00
} ,
tick : function ( pixel ) {
2025-01-18 19:19:52 -05:00
doBioNorm ( pixel ) ;
2024-12-03 19:43:00 -05:00
doDefaults ( pixel ) ;
} ,
density : 2710 ,
state : "solid" ,
tempHigh : 200 ,
stateHigh : "cooked_meat" ,
tempLow : - 25 ,
stateLow : "frozen_meat" ,
2024-12-26 19:51:40 -05:00
burn : 5 ,
burnTime : 350 ,
2024-12-03 19:43:00 -05:00
burnInto : "cooked_meat" ,
breakInto : [ "blood" , "meat" ] ,
reactions : {
"cancer" : { elem1 : "cancer" , chance : 0.0005 } ,
"radiation" : { elem1 : [ "ash" , "blood" , "fat" , "meat" , "rotten_meat" , "cooked_meat" ] , chance : 0.4 } ,
} ,
properties : {
oxygen : 1000 ,
nutrition : 1000 ,
2024-12-12 15:47:06 -05:00
speed : 0 ,
2025-01-12 21:16:03 -05:00
poisoned : false ,
immune : false ,
2025-01-18 19:19:52 -05:00
2024-12-03 19:43:00 -05:00
} ,
isBio : true ,
2025-01-18 19:19:52 -05:00
renderer : renderPresets . FLESHBURN ,
2024-12-27 23:49:11 -05:00
movable : false ,
hidden : true ,
2024-12-03 19:43:00 -05:00
}
2024-12-10 19:53:59 -05:00
elements . revive = {
color : "#8BE73E" ,
hidden : true ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"XX|XX|XX" ,
] ,
tool : function ( pixel ) {
if ( elements [ pixel . element ] . isBio == true ) {
if ( pixel . nutrition < 2000 || pixel . oxygen < 2000 ) {
if ( pixel . nutrition < 2000 ) {
pixel . nutrition += 100
}
if ( pixel . oxygen < 2000 ) {
pixel . oxygen += 100
}
}
2024-12-10 22:23:04 -05:00
if ( pixel . burning ) {
pixel . burning = false
}
2024-12-10 19:53:59 -05:00
}
2025-01-12 21:16:03 -05:00
if ( elements [ pixel . element ] . id === elements . cancer . id ) {
2024-12-10 19:53:59 -05:00
changePixel ( pixel , "flesh" ) ;
}
2024-12-28 22:34:32 -05:00
else if ( elements [ pixel . element ] . id === elements . bone . id ) {
2024-12-10 22:23:04 -05:00
changePixel ( pixel , "real_bone" ) ;
}
2024-12-28 22:34:32 -05:00
else if ( elements [ pixel . element ] . id === elements . bone _marrow . id ) {
changePixel ( pixel , "real_bone_marrow" ) ;
}
else if ( elements [ pixel . element ] . id === elements . skin . id ) {
2024-12-10 22:23:04 -05:00
changePixel ( pixel , "epidermis" ) ;
}
2024-12-28 22:34:32 -05:00
else if ( elements [ pixel . element ] . id === elements . infected _vessel . id ) {
if ( Math . random ( ) < 0.95 ) {
changePixel ( pixel , "blood_vessel" ) ;
2024-12-10 22:23:04 -05:00
}
2024-12-28 22:34:32 -05:00
else { changePixel ( pixel , "white_blood_cell" ) ; }
2024-12-10 22:23:04 -05:00
}
} ,
canPlace : false ,
category : "tools" ,
}
elements . drain _health = {
color : "#AD1300" ,
hidden : true ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"XX|XX|XX" ,
] ,
tool : function ( pixel ) {
if ( elements [ pixel . element ] . isBio == true ) {
if ( pixel . nutrition > 10 || pixel . oxygen > 10 ) {
if ( pixel . nutrition > 10 ) {
pixel . nutrition -= 10
}
if ( pixel . oxygen > 10 ) {
pixel . oxygen -= 10
}
}
}
2024-12-10 19:53:59 -05:00
} ,
canPlace : false ,
category : "tools" ,
}
2025-01-06 18:31:08 -05:00
elements . toilet = {
color : "#e1e4dd" ,
behavior : behaviors . WALL ,
category : "solids" ,
state : "solid" ,
density : 2403 ,
hardness : 0.4 ,
breakInto : [ "porcelain_shard" , "porcelain_shard" , "porcelain_shard" , "porcelain_shard" , "porcelain_shard" , "porcelain_shard" , "porcelain_shard" , "water" , "porcelain_shard" , "porcelain_shard" , "porcelain_shard" , "water" , "porcelain_shard" , "porcelain_shard" , "porcelain_shard" , "urine" , "porcelain_shard" , "porcelain_shard" , "porcelain_shard" , "water" , "porcelain_shard" , "porcelain_shard" , "porcelain_shard" , "water" , "porcelain_shard" , "porcelain_shard" , "porcelain_shard" , "excreted_poop" ] ,
noMix : true ,
movable : false ,
tempHigh : 900 ,
stateHigh : [ "porcelain_shard" , "porcelain_shard" , "porcelain_shard" , "porcelain_shard" , "porcelain_shard" , "porcelain_shard" , "porcelain_shard" , "water" , "porcelain_shard" , "porcelain_shard" , "porcelain_shard" , "water" , "porcelain_shard" , "porcelain_shard" , "porcelain_shard" , "urine" , "porcelain_shard" , "porcelain_shard" , "porcelain_shard" , "water" , "porcelain_shard" , "porcelain_shard" , "porcelain_shard" , "water" , "porcelain_shard" , "porcelain_shard" , "porcelain_shard" , "excreted_poop" ] ,
tick : function ( pixel ) {
var coords = rectCoords ( pixel . x - 1 , pixel . y - 1 , pixel . x + 1 , pixel . y + 3 ) ;
for ( var i = 0 ; i < coords . length ; i ++ ) { // Burn adjacent pixels
var x = coords [ i ] . x ;
var y = coords [ i ] . y ;
if ( ! isEmpty ( x , y , true ) ) {
elements . toilet . tool ( pixelMap [ x ] [ y ] ) ;
}
}
} ,
tool : function ( pixel ) {
if ( elements [ pixel . element ] . isWaste === true ) {
deletePixel ( pixel . x , pixel . y )
}
} ,
canPlace : true ,
hidden : true ,
}
2024-11-25 23:09:06 -05:00
if ( ! elements . cancer . reactions ) { elements . cancer . reactions = { } }
2025-01-18 19:19:52 -05:00
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 } ;
2024-11-26 11:08:43 -05:00
if ( ! elements . uranium . reactions ) { elements . uranium . reactions = { } }
2025-01-18 19:19:52 -05:00
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 } ;
2024-11-26 11:08:43 -05:00
if ( ! elements . radiation . reactions ) { elements . radiation . reactions = { } }
2025-01-18 19:19:52 -05:00
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 } ;
2024-11-26 11:08:43 -05:00
if ( ! elements . plague . reactions ) { elements . plague . reactions = { } }
2025-01-18 19:19:52 -05:00
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 } ;
2024-12-27 23:49:11 -05:00
if ( ! elements . infection . reactions ) { elements . infection . reactions = { } }
2025-01-18 19:19:52 -05:00
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 } ;
2024-11-26 11:08:43 -05:00
2024-11-27 23:13:34 -05:00
if ( ! elements . fly . reactions ) { elements . infection . reactions = { } }
elements . fly . reactions . poop = { elem2 : [ null , null , "stench" ] , chance : 0.15 , func : behaviors . FEEDPIXEL } ;
2024-12-11 12:04:41 -05:00
if ( ! elements . stench . reactions ) { elements . infection . reactions = { } }
2025-01-02 22:06:28 -05:00
elements . stench . reactions . intestines = { elem1 : [ null , null , null , null , null , null , "foam" ] , chance : 0.005 , } ;
elements . stench . reactions . stomach _valve = { elem1 : [ null , null , null , null , null , null , "foam" ] , chance : 0.015 , } ;
2024-12-11 12:04:41 -05:00
2024-12-25 18:33:53 -05:00
elements . bless . reactions . poop = { elem2 : null }
elements . bless . reactions . excreted _poop = { elem2 : null }
2025-01-02 22:06:28 -05:00
elements . bless . reactions . infected _vessel = { elem2 : [ "blood_vessel" , "blood_vessel" , "blood_vessel" , "blood_vessel" , "blood_vessel" , "blood_vessel" , "white_blood_cell" ] }
2025-01-06 18:31:08 -05:00
elements . bless . reactions . urine = { elem2 : "water" }
2025-01-02 22:06:28 -05:00
elements . bless . tool = function ( pixel ) {
if ( elements . bless . ignore . indexOf ( pixel . element ) !== - 1 ) { return ; }
if ( pixel . burning && ! elements [ pixel . element ] . burning ) { // stop burning
delete pixel . burning ;
delete pixel . burnStart ;
}
if ( ! elements [ pixel . element ] . insulate ) {
if ( pixel . temp > 100 ) {
pixel . temp = ( pixel . temp + 100 ) / 2 ;
pixelTempCheck ( pixel ) ;
if ( pixel . del ) { return }
}
if ( pixel . temp < - 200 ) {
pixel . temp = ( pixel . temp - 200 ) / 2 ;
pixelTempCheck ( pixel ) ;
if ( pixel . del ) { return }
}
}
if ( pixel . origColor ) {
pixel . color = "rgb(" + pixel . origColor . join ( "," ) + ")" ;
delete pixel . origColor ;
}
if ( pixel . charge ) {
delete pixel . charge ;
pixel . chargeCD = 16 ;
}
if ( elements . bless . reactions [ pixel . element ] && Math . random ( ) < 0.25 ) {
var r = elements . bless . reactions [ pixel . element ] ;
var elem2 = r . elem2 ;
if ( elem2 !== undefined ) {
if ( Array . isArray ( elem2 ) ) { elem2 = elem2 [ Math . floor ( Math . random ( ) * elem2 . length ) ] ; }
if ( elem2 === null ) { deletePixel ( pixel . x , pixel . y ) }
else { changePixel ( pixel , elem2 ) ; }
}
if ( r . func ) { r . func ( pixel , pixel ) }
if ( r . color2 ) { pixel . color = pixelColorPick ( pixel , r . color2 ) }
}
if ( elements [ pixel . element ] . isBio == true ) {
if ( pixel . nutrition < 2000 || pixel . oxygen < 2000 ) {
if ( pixel . nutrition < 2000 ) {
pixel . nutrition += 100
}
if ( pixel . oxygen < 2000 ) {
pixel . oxygen += 100
}
if ( pixel . speed < 0 ) {
pixel . oxygen += 10
}
}
if ( pixel . burning ) {
pixel . burning = false
}
}
}
2024-12-25 18:33:53 -05:00
2025-01-18 19:19:52 -05:00
elements . dna . reactions . juice = { elem1 : null , elem2 : "elixir" , chance : 0.01 } ;
2024-12-25 18:33:53 -05:00
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" ]
2025-01-06 18:31:08 -05:00
elements . dirty _water . isWaste = true ;
2025-01-18 19:19:52 -05:00
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 } ;