2022-02-18 21:15:29 -05:00
elements . bacteria = {
color : [ "#e6d3f2" , "#c098d9" , "#6e318f" , "#6e318f" ] ,
behavior : behaviors . WALL ,
tick : function ( pixel ) {
neighbors = [ [ - 1 , 0 ] , [ 0 , - 1 ] , [ 1 , 0 ] , [ 0 , 1 ] ]
if ( pixel . charge ) { //when shocked
if ( ! outOfBounds ( pixel . x , pixel . y + 1 ) && ! isEmpty ( pixel . x , pixel . y + 1 ) ) { //check if a pixel exists below to store the element of
if ( ! pixel . active && ! pixel . target && pixelMap [ pixel . x ] [ pixel . y + 1 ] . element != pixel . element ) { //exclude self and only fire once
pixel . target = pixelMap [ pixel . x ] [ pixel . y + 1 ] . element
pixel . active = true
} else if ( pixel . active || pixel . target || pixelMap [ pixel . x ] [ pixel . y + 1 ] . element == pixel . element ) {
pixel . active = pixel . active
pixel . target = pixel . target
}
}
}
if ( pixel . active ) {
if ( pixel . target ) { //safety
for ( i = 0 ; i < neighbors . length ; i ++ ) { //iterate through neighbor spots
if ( ! isEmpty ( pixel . x + neighbors [ i ] [ 0 ] , pixel . y + neighbors [ i ] [ 1 ] , true ) ) { //check for neighbors
if ( pixelMap [ pixel . x + neighbors [ i ] [ 0 ] ] [ pixel . y + neighbors [ i ] [ 1 ] ] . element == pixel . target ) { //if neighbor element is the target
changePixel ( pixelMap [ pixel . x + neighbors [ i ] [ 0 ] ] [ pixel . y + neighbors [ i ] [ 1 ] ] , pixel . element ) //change neighbors to itself
pixelMap [ pixel . x + neighbors [ i ] [ 0 ] ] [ pixel . y + neighbors [ i ] [ 1 ] ] . target = pixel . target //set new bacteria target
pixelMap [ pixel . x + neighbors [ i ] [ 0 ] ] [ pixel . y + neighbors [ i ] [ 1 ] ] . active = true //activate new bacteria
}
}
}
}
if ( Math . random ( ) < 0.02 ) { //decay
if ( ! isEmpty ( pixel . x , pixel . y ) ) { //check if position is empty
if ( pixelMap [ pixel . x ] [ pixel . y ] . element == pixel . element ) { //check if position is still bacteria
deletePixel ( pixel . x , pixel . y )
}
}
}
}
/*if(pixel.active && pixel.target) { / / debug
pixel . color = "rgb(255,0,0)"
} * /
} ,
category : "special" ,
state : "solid" ,
density : 1 ,
conduct : elements . water . conduct + 0.1 ,
} ,
elements . replacer _bacteria = {
color : [ "#fcbbc0" , "#f28089" , "#f04f5c" , "#f04f5c" ] ,
behavior : behaviors . WALL ,
tick : function ( pixel ) {
neighbors = [ [ - 1 , 0 ] , [ 0 , - 1 ] , [ 1 , 0 ] , [ 0 , 1 ] ]
if ( pixel . charge ) { //when shocked
if ( ! outOfBounds ( pixel . x , pixel . y + 1 ) && ! isEmpty ( pixel . x , pixel . y + 1 ) && ! outOfBounds ( pixel . x , pixel . y - 1 ) && ! isEmpty ( pixel . x , pixel . y - 1 ) ) { //check if pixels exists above and below to store the elements of
if ( ! pixel . active && ! pixel . target && ! pixel . replacement && pixelMap [ pixel . x ] [ pixel . y + 1 ] . element != pixel . element ) { //exclude self and only fire once
pixel . target = pixelMap [ pixel . x ] [ pixel . y + 1 ] . element
pixel . replacement = pixelMap [ pixel . x ] [ pixel . y - 1 ] . element
pixel . active = true
} else if ( pixel . active || pixel . target || pixel . replacement || pixelMap [ pixel . x ] [ pixel . y + 1 ] . element == pixel . element ) {
pixel . active = pixel . active
pixel . target = pixel . target
pixel . replacement = pixel . replacement
}
}
}
if ( pixel . active ) {
if ( pixel . target && pixel . replacement ) { //safety
for ( i = 0 ; i < neighbors . length ; i ++ ) { //iterate through neighbor spots
if ( ! isEmpty ( pixel . x + neighbors [ i ] [ 0 ] , pixel . y + neighbors [ i ] [ 1 ] , true ) ) { //check for neighbors
if ( pixelMap [ pixel . x + neighbors [ i ] [ 0 ] ] [ pixel . y + neighbors [ i ] [ 1 ] ] . element == pixel . target ) { //if neighbor element is the target
changePixel ( pixelMap [ pixel . x + neighbors [ i ] [ 0 ] ] [ pixel . y + neighbors [ i ] [ 1 ] ] , pixel . element ) //change neighbors to itself
pixelMap [ pixel . x + neighbors [ i ] [ 0 ] ] [ pixel . y + neighbors [ i ] [ 1 ] ] . target = pixel . target //set new bacteria target
pixelMap [ pixel . x + neighbors [ i ] [ 0 ] ] [ pixel . y + neighbors [ i ] [ 1 ] ] . replacement = pixel . replacement //set new bacteria replacement
pixelMap [ pixel . x + neighbors [ i ] [ 0 ] ] [ pixel . y + neighbors [ i ] [ 1 ] ] . active = true //activate new bacteria
}
}
}
if ( ! isEmpty ( pixel . x , pixel . y ) ) { //check if own position is empty
if ( pixelMap [ pixel . x ] [ pixel . y ] . element == pixel . element ) { //check if own position is still bacteria
changePixel ( pixelMap [ pixel . x ] [ pixel . y ] , pixel . replacement )
}
}
}
}
/*if(pixel.active && pixel.target && pixel.replacement) { / / debug
pixel . color = "rgb(0,255,0)"
} * /
} ,
category : "special" ,
state : "solid" ,
density : 1 ,
conduct : elements . water . conduct + 0.1 ,
} ,
2022-02-18 08:48:55 -05:00
elements . test337 = {
color : "#7f7f7f" ,
conduct : 1 ,
viscosity : 0.000001 ,
2022-02-18 19:28:37 -05:00
colorOn : [ "#cf7fff" ] ,
2022-02-18 08:48:55 -05:00
density : 2000 ,
behavior : behaviors . POWDER ,
state : "solid" ,
category : "solids" ,
tick : function ( pixel ) {
for ( i = 0 ; i < 3 ; i ++ ) {
var moveSpotsA = [ [ 0 , 1 ] ]
var moveSpotsB = [ [ - 1 , 1 ] , [ 1 , 1 ] ]
var msaChoice = randomArrayChoice ( moveSpotsA )
var msbChoice = randomArrayChoice ( moveSpotsB )
if ( isEmpty ( msaChoice [ 0 ] , pixel . y + msaChoice [ 1 ] , true ) ) {
if ( ! tryMove ( pixel , pixel . x + msaChoice [ 0 ] , pixel . y + msaChoice [ 1 ] ) ) {
tryMove ( pixel , pixel . x + msbChoice [ 0 ] , pixel . y + msbChoice [ 1 ] )
}
}
pixelTick ( pixel )
}
} ,
} ,
2022-01-26 10:36:44 -05:00
elements . sencc = { //same element neighbor count check
color : "#000000" ,
uwu : 0 ,
tick : function ( pixel ) {
pixel . uwu = 0
for ( let i = - 1 ; i < 2 ; i ++ ) {
for ( let j = - 1 ; j < 2 ; j ++ ) {
if ( ! isEmpty ( pixel . x + j , pixel . y + i ) && ! outOfBounds ( pixel . x + j , pixel . y + i ) ) {
if ( pixelMap [ pixel . x + j ] [ pixel . y + i ] . element == pixel . element ) {
pixel . uwu += 1
}
}
}
}
pixel . uwu -= 1
if ( pixel . uwu == undefined || pixel . uwu == null || isNaN ( pixel . uwu ) ) {
pixel . color = "rgb(127,127,127)"
} else {
pixel . color = "rgb(" + ( 255 / 8 ) * pixel . uwu + ",0,0)"
}
} ,
category : "machines" ,
insulate : true ,
state : "solid" ,
hidden : true ,
} ,
elements . sencc2 = { //same element neighbor count check
color : "#000000" ,
uwu : 0 ,
tick : function ( pixel ) {
pixel . uwu = 0
2022-02-18 18:56:54 -05:00
for ( let i = - 3 ; i < 4 ; i ++ ) {
for ( let j = - 3 ; j < 4 ; j ++ ) {
2022-01-26 10:36:44 -05:00
if ( ! isEmpty ( pixel . x + j , pixel . y + i ) && ! outOfBounds ( pixel . x + j , pixel . y + i ) ) {
if ( pixelMap [ pixel . x + j ] [ pixel . y + i ] . element == pixel . element ) {
pixel . uwu += 1
}
}
}
}
pixel . uwu -= 1
if ( pixel . uwu == undefined || pixel . uwu == null || isNaN ( pixel . uwu ) ) {
pixel . color = "rgb(127,127,127)"
} else {
pixel . color = "rgb(" + ( 255 / 24 ) * pixel . uwu + ",0,0)"
}
} ,
category : "machines" ,
insulate : true ,
state : "solid" ,
hidden : true ,
} ,
2022-02-18 18:56:54 -05:00
elements . sencc3 = { //same element neighbor count check
color : "#000000" ,
uwu : 0 ,
tick : function ( pixel ) {
pixel . uwu = 0
var squadius = 3
for ( let i = ( - 1 * squadius ) ; i < ( squadius + 1 ) ; i ++ ) {
for ( let j = ( - 1 * squadius ) ; j < ( squadius + 1 ) ; j ++ ) {
if ( ! isEmpty ( pixel . x + j , pixel . y + i ) && ! outOfBounds ( pixel . x + j , pixel . y + i ) ) {
if ( pixelMap [ pixel . x + j ] [ pixel . y + i ] . element == pixel . element ) {
pixel . uwu += 1
}
}
}
}
pixel . uwu -= 1
if ( pixel . uwu == undefined || pixel . uwu == null || isNaN ( pixel . uwu ) ) {
pixel . color = "rgb(127,127,127)"
} else {
pixel . color = "rgb(" + ( 255 / ( ( ( ( squadius * 2 ) + 1 ) * * 2 ) - 1 ) ) * pixel . uwu + ",0,0)"
}
} ,
category : "machines" ,
insulate : true ,
state : "solid" ,
hidden : true ,
} ,
elements . sencc4 = { //same element neighbor count check
color : "#000000" ,
uwu : 0 ,
tick : function ( pixel ) {
pixel . uwu = 0
var squadius = 4
for ( let i = ( - 1 * squadius ) ; i < ( squadius + 1 ) ; i ++ ) {
for ( let j = ( - 1 * squadius ) ; j < ( squadius + 1 ) ; j ++ ) {
if ( ! isEmpty ( pixel . x + j , pixel . y + i ) && ! outOfBounds ( pixel . x + j , pixel . y + i ) ) {
if ( pixelMap [ pixel . x + j ] [ pixel . y + i ] . element == pixel . element ) {
pixel . uwu += 1
}
}
}
}
pixel . uwu -= 1
if ( pixel . uwu == undefined || pixel . uwu == null || isNaN ( pixel . uwu ) ) {
pixel . color = "rgb(127,127,127)"
} else {
pixel . color = "rgb(" + ( 255 / ( ( ( ( squadius * 2 ) + 1 ) * * 2 ) - 1 ) ) * pixel . uwu + ",0,0)"
}
} ,
category : "machines" ,
insulate : true ,
state : "solid" ,
hidden : true ,
} ,
elements . sencc5 = { //same element neighbor count check
color : "#000000" ,
uwu : 0 ,
tick : function ( pixel ) {
pixel . uwu = 0
var squadius = 5
for ( let i = ( - 1 * squadius ) ; i < ( squadius + 1 ) ; i ++ ) {
for ( let j = ( - 1 * squadius ) ; j < ( squadius + 1 ) ; j ++ ) {
if ( ! isEmpty ( pixel . x + j , pixel . y + i ) && ! outOfBounds ( pixel . x + j , pixel . y + i ) ) {
if ( pixelMap [ pixel . x + j ] [ pixel . y + i ] . element == pixel . element ) {
pixel . uwu += 1
}
}
}
}
pixel . uwu -= 1
if ( pixel . uwu == undefined || pixel . uwu == null || isNaN ( pixel . uwu ) ) {
pixel . color = "rgb(127,127,127)"
} else {
pixel . color = "rgb(" + ( 255 / ( ( ( ( squadius * 2 ) + 1 ) * * 2 ) - 1 ) ) * pixel . uwu + ",0,0)"
}
} ,
category : "machines" ,
insulate : true ,
state : "solid" ,
hidden : true ,
} ,
elements . sencc6 = { //same element neighbor count check
color : "#000000" ,
uwu : 0 ,
tick : function ( pixel ) {
pixel . uwu = 0
var squadius = 6
for ( let i = ( - 1 * squadius ) ; i < ( squadius + 1 ) ; i ++ ) {
for ( let j = ( - 1 * squadius ) ; j < ( squadius + 1 ) ; j ++ ) {
if ( ! isEmpty ( pixel . x + j , pixel . y + i ) && ! outOfBounds ( pixel . x + j , pixel . y + i ) ) {
if ( pixelMap [ pixel . x + j ] [ pixel . y + i ] . element == pixel . element ) {
pixel . uwu += 1
}
}
}
}
pixel . uwu -= 1
if ( pixel . uwu == undefined || pixel . uwu == null || isNaN ( pixel . uwu ) ) {
pixel . color = "rgb(127,127,127)"
} else {
pixel . color = "rgb(" + ( 255 / ( ( ( ( squadius * 2 ) + 1 ) * * 2 ) - 1 ) ) * pixel . uwu + ",0,0)"
}
} ,
category : "machines" ,
insulate : true ,
state : "solid" ,
hidden : true ,
} ,
elements . sencc7 = { //same element neighbor count check
color : "#000000" ,
uwu : 0 ,
tick : function ( pixel ) {
pixel . uwu = 0
var squadius = 7
for ( let i = ( - 1 * squadius ) ; i < ( squadius + 1 ) ; i ++ ) {
for ( let j = ( - 1 * squadius ) ; j < ( squadius + 1 ) ; j ++ ) {
if ( ! isEmpty ( pixel . x + j , pixel . y + i ) && ! outOfBounds ( pixel . x + j , pixel . y + i ) ) {
if ( pixelMap [ pixel . x + j ] [ pixel . y + i ] . element == pixel . element ) {
pixel . uwu += 1
}
}
}
}
pixel . uwu -= 1
if ( pixel . uwu == undefined || pixel . uwu == null || isNaN ( pixel . uwu ) ) {
pixel . color = "rgb(127,127,127)"
} else {
pixel . color = "rgb(" + ( 255 / ( ( ( ( squadius * 2 ) + 1 ) * * 2 ) - 1 ) ) * pixel . uwu + ",0,0)"
}
} ,
category : "machines" ,
insulate : true ,
state : "solid" ,
hidden : true ,
} ,
elements . sencc8 = { //same element neighbor count check
color : "#000000" ,
uwu : 0 ,
tick : function ( pixel ) {
pixel . uwu = 0
var squadius = 8
for ( let i = ( - 1 * squadius ) ; i < ( squadius + 1 ) ; i ++ ) {
for ( let j = ( - 1 * squadius ) ; j < ( squadius + 1 ) ; j ++ ) {
if ( ! isEmpty ( pixel . x + j , pixel . y + i ) && ! outOfBounds ( pixel . x + j , pixel . y + i ) ) {
if ( pixelMap [ pixel . x + j ] [ pixel . y + i ] . element == pixel . element ) {
pixel . uwu += 1
}
}
}
}
pixel . uwu -= 1
if ( pixel . uwu == undefined || pixel . uwu == null || isNaN ( pixel . uwu ) ) {
pixel . color = "rgb(127,127,127)"
} else {
pixel . color = "rgb(" + ( 255 / ( ( ( ( squadius * 2 ) + 1 ) * * 2 ) - 1 ) ) * pixel . uwu + ",0,0)"
}
} ,
category : "machines" ,
insulate : true ,
state : "solid" ,
hidden : true ,
} ,
elements . sencc9 = { //same element neighbor count check
color : "#000000" ,
uwu : 0 ,
tick : function ( pixel ) {
pixel . uwu = 0
var squadius = 9
for ( let i = ( - 1 * squadius ) ; i < ( squadius + 1 ) ; i ++ ) {
for ( let j = ( - 1 * squadius ) ; j < ( squadius + 1 ) ; j ++ ) {
if ( ! isEmpty ( pixel . x + j , pixel . y + i ) && ! outOfBounds ( pixel . x + j , pixel . y + i ) ) {
if ( pixelMap [ pixel . x + j ] [ pixel . y + i ] . element == pixel . element ) {
pixel . uwu += 1
}
}
}
}
pixel . uwu -= 1
if ( pixel . uwu == undefined || pixel . uwu == null || isNaN ( pixel . uwu ) ) {
pixel . color = "rgb(127,127,127)"
} else {
pixel . color = "rgb(" + ( 255 / ( ( ( ( squadius * 2 ) + 1 ) * * 2 ) - 1 ) ) * pixel . uwu + ",0,0)"
}
} ,
category : "machines" ,
insulate : true ,
state : "solid" ,
hidden : true ,
} ,
elements . sencc10 = { //same element neighbor count check
color : "#000000" ,
uwu : 0 ,
tick : function ( pixel ) {
pixel . uwu = 0
var squadius = 10
for ( let i = ( - 1 * squadius ) ; i < ( squadius + 1 ) ; i ++ ) {
for ( let j = ( - 1 * squadius ) ; j < ( squadius + 1 ) ; j ++ ) {
if ( ! isEmpty ( pixel . x + j , pixel . y + i ) && ! outOfBounds ( pixel . x + j , pixel . y + i ) ) {
if ( pixelMap [ pixel . x + j ] [ pixel . y + i ] . element == pixel . element ) {
pixel . uwu += 1
}
}
}
}
pixel . uwu -= 1
if ( pixel . uwu == undefined || pixel . uwu == null || isNaN ( pixel . uwu ) ) {
pixel . color = "rgb(127,127,127)"
} else {
pixel . color = "rgb(" + ( 255 / ( ( ( ( squadius * 2 ) + 1 ) * * 2 ) - 1 ) ) * pixel . uwu + ",0,0)"
}
} ,
category : "machines" ,
insulate : true ,
state : "solid" ,
hidden : true ,
} ,
elements . sencc11 = { //same element neighbor count check
color : "#000000" ,
uwu : 0 ,
tick : function ( pixel ) {
pixel . uwu = 0
var squadius = 11
for ( let i = ( - 1 * squadius ) ; i < ( squadius + 1 ) ; i ++ ) {
for ( let j = ( - 1 * squadius ) ; j < ( squadius + 1 ) ; j ++ ) {
if ( ! isEmpty ( pixel . x + j , pixel . y + i ) && ! outOfBounds ( pixel . x + j , pixel . y + i ) ) {
if ( pixelMap [ pixel . x + j ] [ pixel . y + i ] . element == pixel . element ) {
pixel . uwu += 1
}
}
}
}
pixel . uwu -= 1
if ( pixel . uwu == undefined || pixel . uwu == null || isNaN ( pixel . uwu ) ) {
pixel . color = "rgb(127,127,127)"
} else {
pixel . color = "rgb(" + ( 255 / ( ( ( ( squadius * 2 ) + 1 ) * * 2 ) - 1 ) ) * pixel . uwu + ",0,0)"
}
} ,
category : "machines" ,
insulate : true ,
state : "solid" ,
hidden : true ,
} ,
2022-01-26 10:36:44 -05:00
elements . sencc2b = { //same element neighbor count check
color : "#000000" ,
uwu : 0 ,
owo : 0 ,
tick : function ( pixel ) {
pixel . uwu = 0
pixel . owo = 0
for ( let i = - 2 ; i < 3 ; i ++ ) {
for ( let j = - 2 ; j < 3 ; j ++ ) {
if ( ! isEmpty ( pixel . x + j , pixel . y + i ) && ! outOfBounds ( pixel . x + j , pixel . y + i ) ) {
if ( pixelMap [ pixel . x + j ] [ pixel . y + i ] . element == pixel . element ) {
if ( pixel . uwu < 8 ) {
pixel . uwu += 1
} else {
pixel . owo += 1
}
}
}
}
}
pixel . owo -= 1
if ( pixel . uwu == undefined || pixel . uwu == null || isNaN ( pixel . uwu ) || pixel . owo == undefined || pixel . owo == null || isNaN ( pixel . owo ) ) {
pixel . color = "rgb(127,127,127)"
} else {
pixel . color = "rgb(" + ( 255 / 8 ) * pixel . uwu + "," + ( 255 / 16 ) * pixel . owo + ",0)"
}
} ,
category : "machines" ,
insulate : true ,
state : "solid" ,
hidden : true ,
} ,
2022-01-26 18:26:20 -05:00
elements . discharge = {
color : "#7f7f7f" ,
tick : function ( pixel ) {
for ( var i = 1 ; i < width ; i ++ ) {
for ( var j = 1 ; j < height ; j ++ ) {
if ( ! isEmpty ( i , j ) ) {
pixelMap [ i ] [ j ] . charge = 0
}
}
}
deletePixel ( pixel . x , pixel . y )
} ,
category : "special" ,
insulate : true ,
state : "solid" ,
behavior : behaviors . SELFDELETE ,
} ,
elements . troll _powder = {
color : [ "#ffffff" , "#000000" ] ,
tick : function ( pixel ) {
ddd = Math . random ( )
eee = Math . random ( )
fff = 1 - eee
doHeat ( pixel ) ;
doBurning ( pixel ) ;
if ( ddd < 0.9 ) {
if ( ! tryMove ( pixel , pixel . x , pixel . y + 1 ) ) {
if ( eee < 1 / 2 ) { tryMove ( pixel , pixel . x - 1 , pixel . y + 1 ) } else tryMove ( pixel , pixel . x + 1 , pixel . y + 1 )
}
if ( Math . random ( ) < 0.0017 ) {
if ( fff < 1 / 5 ) { tryMove ( pixel , pixel . x - 2 , pixel . y - 1 ) }
if ( fff < 2 / 5 ) { tryMove ( pixel , pixel . x - 1 , pixel . y - 2 ) }
if ( fff < 3 / 5 ) { tryMove ( pixel , pixel . x , pixel . y - 3 ) }
if ( fff < 4 / 5 ) { tryMove ( pixel , pixel . x + 1 , pixel . y - 2 ) }
if ( fff < 5 / 5 ) { tryMove ( pixel , pixel . x + 2 , pixel . y - 1 ) }
}
if ( Math . random ( ) < 0.0003 ) { tryMove ( pixel , pixel . y , pixel . y ) ; }
if ( Math . random ( ) < 0.0003 ) { tryMove ( pixel , pixel . x , pixel . x ) ; }
if ( ( ( Math . floor ( pixel . x / 2 ) % 2 == 0 ) && ( Math . floor ( pixel . y / 2 ) % 2 == 0 ) ) || ( ( Math . floor ( pixel . x / 2 ) % 2 == 1 ) && ( Math . floor ( pixel . y / 2 ) % 2 == 1 ) ) ) {
pixel . color = "rgb(32,32,32)"
} else {
pixel . color = "rgb(224,224,224)"
}
}
if ( ddd >= 0.9 ) {
if ( ! tryMove ( pixel , pixel . x , pixel . y - 1 ) ) {
if ( eee < 1 / 2 ) { tryMove ( pixel , pixel . x - 1 , pixel . y - 1 ) } else tryMove ( pixel , pixel . x + 1 , pixel . y - 1 )
}
if ( Math . random ( ) < 0.0017 ) {
if ( fff < 1 / 5 ) { tryMove ( pixel , pixel . x - 2 , pixel . y + 1 ) }
if ( fff < 2 / 5 ) { tryMove ( pixel , pixel . x - 1 , pixel . y + 2 ) }
if ( fff < 3 / 5 ) { tryMove ( pixel , pixel . x , pixel . y + 3 ) }
if ( fff < 4 / 5 ) { tryMove ( pixel , pixel . x + 1 , pixel . y + 2 ) }
if ( fff < 5 / 5 ) { tryMove ( pixel , pixel . x + 2 , pixel . y + 1 ) }
}
if ( Math . random ( ) < 0.0003 ) { tryMove ( pixel , pixel . y , pixel . y ) ; }
if ( Math . random ( ) < 0.0003 ) { tryMove ( pixel , pixel . x , pixel . x ) ; }
if ( ( ( Math . floor ( pixel . x / 2 ) % 2 == 0 ) && ( Math . floor ( pixel . y / 2 ) % 2 == 0 ) ) || ( ( Math . floor ( pixel . x / 2 ) % 2 == 1 ) && ( Math . floor ( pixel . y / 2 ) % 2 == 1 ) ) ) {
pixel . color = "rgb(32,32,32)"
} else {
pixel . color = "rgb(224,224,224)"
}
pixel . temp = pixel . temp + ( ( Math . floor ( Math . random ( ) * 3 ) - 1 ) * 2 )
}
} ,
category : "powders" ,
state : "solid" ,
density : 1602 ,
2022-01-28 12:19:30 -05:00
} ,
2022-01-28 10:26:40 -05:00
elements . void _first = {
color : "#262626" ,
tick : function ( pixel ) {
//store 4 touching pixels in variables if the variables don't exist
if ( ! outOfBounds ( pixel . x , pixel . y - 1 ) && ! isEmpty ( pixel . x , pixel . y - 1 ) ) {
if ( ! pixel . dc1 && pixelMap [ pixel . x ] [ pixel . y - 1 ] . element != pixel . element ) {
pixel . dc1 = pixelMap [ pixel . x ] [ pixel . y - 1 ] . element
}
}
if ( ! outOfBounds ( pixel . x + 1 , pixel . y ) && ! isEmpty ( pixel . x + 1 , pixel . y ) ) {
if ( ! pixel . dc2 && pixelMap [ pixel . x + 1 ] [ pixel . y ] . element != pixel . element ) {
pixel . dc2 = pixelMap [ pixel . x + 1 ] [ pixel . y ] . element
}
}
if ( ! outOfBounds ( pixel . x , pixel . y + 1 ) && ! isEmpty ( pixel . x , pixel . y + 1 ) ) {
if ( ! pixel . dc3 && pixelMap [ pixel . x ] [ pixel . y + 1 ] . element != pixel . element ) {
pixel . dc3 = pixelMap [ pixel . x ] [ pixel . y + 1 ] . element
}
}
if ( ! outOfBounds ( pixel . x - 1 , pixel . y ) && ! isEmpty ( pixel . x - 1 , pixel . y ) ) {
if ( ! pixel . dc3 && pixelMap [ pixel . x - 1 ] [ pixel . y ] . element != pixel . element ) {
pixel . dc4 = pixelMap [ pixel . x - 1 ] [ pixel . y ] . element
}
}
//choose from 1
if ( pixel . dc1 && ! pixel . dc2 && ! pixel . dc3 && ! pixel . dc4 ) {
if ( ! pixel . delete ) {
pixel . delete = pixel . dc1
}
}
if ( ! pixel . dc1 && pixel . dc2 && ! pixel . dc3 && ! pixel . dc4 ) {
if ( ! pixel . delete ) {
pixel . delete = pixel . dc2
}
}
if ( ! pixel . dc1 && ! pixel . dc2 && pixel . dc3 && ! pixel . dc4 ) {
if ( ! pixel . delete ) {
pixel . delete = pixel . dc3
}
}
if ( ! pixel . dc1 && ! pixel . dc2 && ! pixel . dc3 && pixel . dc4 ) {
if ( ! pixel . delete ) {
pixel . delete = pixel . dc4
}
}
ggg = Math . random ( )
hhh = Math . random ( )
iii = Math . random ( )
//choose from 2
//1100 and 0011
if ( pixel . dc1 && pixel . dc2 && ! pixel . dc3 && ! pixel . dc4 ) {
if ( ! pixel . delete ) {
if ( ggg < 1 / 2 ) {
pixel . delete = pixel . dc1
} else {
pixel . delete = pixel . dc2
}
}
}
if ( ! pixel . dc1 && ! pixel . dc2 && pixel . dc3 && pixel . dc4 ) {
if ( ! pixel . delete ) {
if ( ggg < 1 / 2 ) {
pixel . delete = pixel . dc3
} else {
pixel . delete = pixel . dc4
}
}
}
//1010 and 0101
if ( pixel . dc1 && ! pixel . dc2 && pixel . dc3 && ! pixel . dc4 ) {
if ( ! pixel . delete ) {
if ( ggg < 1 / 2 ) {
pixel . delete = pixel . dc1
} else {
pixel . delete = pixel . dc3
}
}
}
if ( ! pixel . dc1 && pixel . dc2 && ! pixel . dc3 && pixel . dc4 ) {
if ( ! pixel . delete ) {
if ( ggg < 1 / 2 ) {
pixel . delete = pixel . dc2
} else {
pixel . delete = pixel . dc4
}
}
}
//0110 and 1001
if ( ! pixel . dc1 && pixel . dc2 && pixel . dc3 && ! pixel . dc4 ) {
if ( ! pixel . delete ) {
if ( ggg < 1 / 2 ) {
pixel . delete = pixel . dc2
} else {
pixel . delete = pixel . dc3
}
}
}
if ( pixel . dc1 && ! pixel . dc2 && ! pixel . dc3 && pixel . dc4 ) {
if ( ! pixel . delete ) {
if ( ggg < 1 / 2 ) {
pixel . delete = pixel . dc1
} else {
pixel . delete = pixel . dc4
}
}
}
//choose from 3
//0111
if ( ! pixel . dc1 && pixel . dc2 && pixel . dc3 && pixel . dc4 ) {
if ( ! pixel . delete ) {
if ( hhh < 1 / 3 ) {
pixel . delete = pixel . dc2
} else if ( hhh < 2 / 3 ) {
pixel . delete = pixel . dc3
} else {
pixel . delete = pixel . dc4
}
}
}
//1011
if ( pixel . dc1 && ! pixel . dc2 && pixel . dc3 && pixel . dc4 ) {
if ( ! pixel . delete ) {
if ( hhh < 1 / 3 ) {
pixel . delete = pixel . dc1
} else if ( hhh < 2 / 3 ) {
pixel . delete = pixel . dc3
} else {
pixel . delete = pixel . dc4
}
}
}
//1101
if ( pixel . dc1 && pixel . dc2 && ! pixel . dc3 && pixel . dc4 ) {
if ( ! pixel . delete ) {
if ( hhh < 1 / 3 ) {
pixel . delete = pixel . dc1
} else if ( hhh < 2 / 3 ) {
pixel . delete = pixel . dc2
} else {
pixel . delete = pixel . dc4
}
}
}
//1110
if ( pixel . dc1 && pixel . dc2 && pixel . dc3 && ! pixel . dc4 ) {
if ( ! pixel . delete ) {
if ( hhh < 1 / 3 ) {
pixel . delete = pixel . dc1
} else if ( hhh < 2 / 3 ) {
pixel . delete = pixel . dc2
} else {
pixel . delete = pixel . dc3
}
}
}
//choose from 4
//1111
if ( pixel . dc1 && pixel . dc2 && pixel . dc3 && pixel . dc4 ) {
if ( ! pixel . delete ) {
if ( iii < 1 / 4 ) {
pixel . delete = pixel . dc1
} else if ( iii < 2 / 4 ) {
pixel . delete = pixel . dc2
} else if ( iii < 3 / 4 ) {
pixel . delete = pixel . dc3
} else {
pixel . delete = pixel . dc4
}
}
}
for ( let i = - 1 ; i < 2 ; i ++ ) {
for ( let j = - 1 ; j < 2 ; j ++ ) {
if ( ! isEmpty ( pixel . x + j , pixel . y + i ) && ! outOfBounds ( pixel . x + j , pixel . y + i ) ) {
if ( pixel . delete ) {
if ( pixelMap [ pixel . x + j ] [ pixel . y + i ] . element == pixel . delete ) {
deletePixel ( pixel . x + j , pixel . y + i )
}
}
}
}
}
} ,
category : "special" ,
hardness : 1 ,
2022-02-01 09:20:19 -05:00
} ,
2022-02-18 19:28:37 -05:00
elements . converter = {
color : "#2ec408" ,
tick : function ( pixel ) {
//store 4 touching pixels in variables if the variables don't exist
if ( ! outOfBounds ( pixel . x , pixel . y - 1 ) && ! isEmpty ( pixel . x , pixel . y - 1 ) ) {
if ( ! pixel . dc1 && pixelMap [ pixel . x ] [ pixel . y - 1 ] . element != pixel . element ) {
pixel . dc1 = pixelMap [ pixel . x ] [ pixel . y - 1 ] . element
}
}
if ( ! outOfBounds ( pixel . x + 1 , pixel . y ) && ! isEmpty ( pixel . x + 1 , pixel . y ) ) {
if ( ! pixel . dc2 && pixelMap [ pixel . x + 1 ] [ pixel . y ] . element != pixel . element ) {
pixel . dc2 = pixelMap [ pixel . x + 1 ] [ pixel . y ] . element
}
}
if ( ! outOfBounds ( pixel . x , pixel . y + 1 ) && ! isEmpty ( pixel . x , pixel . y + 1 ) ) {
if ( ! pixel . dc3 && pixelMap [ pixel . x ] [ pixel . y + 1 ] . element != pixel . element ) {
pixel . dc3 = pixelMap [ pixel . x ] [ pixel . y + 1 ] . element
}
}
if ( ! outOfBounds ( pixel . x - 1 , pixel . y ) && ! isEmpty ( pixel . x - 1 , pixel . y ) ) {
if ( ! pixel . dc3 && pixelMap [ pixel . x - 1 ] [ pixel . y ] . element != pixel . element ) {
pixel . dc4 = pixelMap [ pixel . x - 1 ] [ pixel . y ] . element
}
}
//choose from 1
if ( pixel . dc1 && ! pixel . dc2 && ! pixel . dc3 && ! pixel . dc4 ) {
if ( ! pixel . changeTo ) {
pixel . changeTo = pixel . dc1
}
}
if ( ! pixel . dc1 && pixel . dc2 && ! pixel . dc3 && ! pixel . dc4 ) {
if ( ! pixel . changeTo ) {
pixel . changeTo = pixel . dc2
}
}
if ( ! pixel . dc1 && ! pixel . dc2 && pixel . dc3 && ! pixel . dc4 ) {
if ( ! pixel . changeTo ) {
pixel . changeTo = pixel . dc3
}
}
if ( ! pixel . dc1 && ! pixel . dc2 && ! pixel . dc3 && pixel . dc4 ) {
if ( ! pixel . changeTo ) {
pixel . changeTo = pixel . dc4
}
}
ggg = Math . random ( )
hhh = Math . random ( )
iii = Math . random ( )
//choose from 2
//1100 and 0011
if ( pixel . dc1 && pixel . dc2 && ! pixel . dc3 && ! pixel . dc4 ) {
if ( ! pixel . changeTo ) {
if ( ggg < 1 / 2 ) {
pixel . changeTo = pixel . dc1
} else {
pixel . changeTo = pixel . dc2
}
}
}
if ( ! pixel . dc1 && ! pixel . dc2 && pixel . dc3 && pixel . dc4 ) {
if ( ! pixel . changeTo ) {
if ( ggg < 1 / 2 ) {
pixel . changeTo = pixel . dc3
} else {
pixel . changeTo = pixel . dc4
}
}
}
//1010 and 0101
if ( pixel . dc1 && ! pixel . dc2 && pixel . dc3 && ! pixel . dc4 ) {
if ( ! pixel . changeTo ) {
if ( ggg < 1 / 2 ) {
pixel . changeTo = pixel . dc1
} else {
pixel . changeTo = pixel . dc3
}
}
}
if ( ! pixel . dc1 && pixel . dc2 && ! pixel . dc3 && pixel . dc4 ) {
if ( ! pixel . changeTo ) {
if ( ggg < 1 / 2 ) {
pixel . changeTo = pixel . dc2
} else {
pixel . changeTo = pixel . dc4
}
}
}
//0110 and 1001
if ( ! pixel . dc1 && pixel . dc2 && pixel . dc3 && ! pixel . dc4 ) {
if ( ! pixel . changeTo ) {
if ( ggg < 1 / 2 ) {
pixel . changeTo = pixel . dc2
} else {
pixel . changeTo = pixel . dc3
}
}
}
if ( pixel . dc1 && ! pixel . dc2 && ! pixel . dc3 && pixel . dc4 ) {
if ( ! pixel . changeTo ) {
if ( ggg < 1 / 2 ) {
pixel . changeTo = pixel . dc1
} else {
pixel . changeTo = pixel . dc4
}
}
}
//choose from 3
//0111
if ( ! pixel . dc1 && pixel . dc2 && pixel . dc3 && pixel . dc4 ) {
if ( ! pixel . changeTo ) {
if ( hhh < 1 / 3 ) {
pixel . changeTo = pixel . dc2
} else if ( hhh < 2 / 3 ) {
pixel . changeTo = pixel . dc3
} else {
pixel . changeTo = pixel . dc4
}
}
}
//1011
if ( pixel . dc1 && ! pixel . dc2 && pixel . dc3 && pixel . dc4 ) {
if ( ! pixel . changeTo ) {
if ( hhh < 1 / 3 ) {
pixel . changeTo = pixel . dc1
} else if ( hhh < 2 / 3 ) {
pixel . changeTo = pixel . dc3
} else {
pixel . changeTo = pixel . dc4
}
}
}
//1101
if ( pixel . dc1 && pixel . dc2 && ! pixel . dc3 && pixel . dc4 ) {
if ( ! pixel . changeTo ) {
if ( hhh < 1 / 3 ) {
pixel . changeTo = pixel . dc1
} else if ( hhh < 2 / 3 ) {
pixel . changeTo = pixel . dc2
} else {
pixel . changeTo = pixel . dc4
}
}
}
//1110
if ( pixel . dc1 && pixel . dc2 && pixel . dc3 && ! pixel . dc4 ) {
if ( ! pixel . changeTo ) {
if ( hhh < 1 / 3 ) {
pixel . changeTo = pixel . dc1
} else if ( hhh < 2 / 3 ) {
pixel . changeTo = pixel . dc2
} else {
pixel . changeTo = pixel . dc3
}
}
}
//choose from 4
//1111
if ( pixel . dc1 && pixel . dc2 && pixel . dc3 && pixel . dc4 ) {
if ( ! pixel . changeTo ) {
if ( iii < 1 / 4 ) {
pixel . changeTo = pixel . dc1
} else if ( iii < 2 / 4 ) {
pixel . changeTo = pixel . dc2
} else if ( iii < 3 / 4 ) {
pixel . changeTo = pixel . dc3
} else {
pixel . changeTo = pixel . dc4
}
}
}
neighbors = [ [ - 1 , 0 ] , [ 0 , - 1 ] , [ 1 , 0 ] , [ 0 , 1 ] ]
for ( i = 0 ; i < neighbors . length ; i ++ ) {
if ( ! isEmpty ( pixel . x + neighbors [ i ] [ 0 ] , pixel . y + neighbors [ i ] [ 1 ] , true ) ) {
if ( pixelMap [ pixel . x + neighbors [ i ] [ 0 ] ] [ pixel . y + neighbors [ i ] [ 1 ] ] . element != pixel . element ) {
changePixel ( pixelMap [ pixel . x + neighbors [ i ] [ 0 ] ] [ pixel . y + neighbors [ i ] [ 1 ] ] , pixel . changeTo )
}
}
}
} ,
category : "special" ,
hardness : 1 ,
} ,
2022-02-01 09:20:19 -05:00
conveyorIgnoreList = [ "conveyor_1" , "conveyor_2" , "wall" ]
elements . conveyor _1 = {
color : "#7f7f7f" ,
tick : function ( pixel ) {
//top right
if ( ! isEmpty ( pixel . x , pixel . y - 1 ) && ! outOfBounds ( pixel . x , pixel . y - 1 ) ) {
if ( pixelMap [ pixel . x ] [ pixel . y - 1 ] . element == "body" ) {
if ( ! isEmpty ( pixel . x , pixel . y - 2 ) && ! outOfBounds ( pixel . x , pixel . y - 2 ) ) {
if ( pixelMap [ pixel . x ] [ pixel . y - 2 ] . element == "head" ) {
if ( isEmpty ( pixel . x + 1 , pixel . y - 1 ) && isEmpty ( pixel . x + 1 , pixel . y - 2 ) && ! outOfBounds ( pixel . x + 1 , pixel . y - 1 ) && ! outOfBounds ( pixel . x + 1 , pixel . y - 2 ) ) {
tryMove ( pixelMap [ pixel . x ] [ pixel . y - 1 ] , pixel . x + 1 , pixel . y - 1 )
tryMove ( pixelMap [ pixel . x ] [ pixel . y - 2 ] , pixel . x + 1 , pixel . y - 2 )
}
}
} else {
if ( isEmpty ( pixel . x + 1 , pixel . y - 1 ) && ! outOfBounds ( pixel . x + 1 , pixel . y - 1 ) ) {
tryMove ( pixelMap [ pixel . x ] [ pixel . y - 1 ] , pixel . x + 1 , pixel . y - 1 )
}
}
} else if ( ! conveyorIgnoreList . includes ( pixelMap [ pixel . x ] [ pixel . y - 1 ] . element ) ) {
tryMove ( pixelMap [ pixel . x ] [ pixel . y - 1 ] , pixel . x + 1 , pixel . y - 1 )
}
}
//right down
if ( ! isEmpty ( pixel . x + 1 , pixel . y ) && ! outOfBounds ( pixel . x + 1 , pixel . y ) ) {
if ( pixelMap [ pixel . x + 1 ] [ pixel . y ] . element == "body" ) {
if ( ! isEmpty ( pixel . x + 1 , pixel . y - 1 ) && ! outOfBounds ( pixel . x + 1 , pixel . y - 1 ) ) {
if ( pixelMap [ pixel . x + 1 ] [ pixel . y - 1 ] . element == "head" ) {
if ( isEmpty ( pixel . x + 1 , pixel . y + 1 ) && ! outOfBounds ( pixel . x + 1 , pixel . y + 1 ) ) {
tryMove ( pixelMap [ pixel . x + 1 ] [ pixel . y ] , pixel . x + 1 , pixel . y + 1 )
tryMove ( pixelMap [ pixel . x + 1 ] [ pixel . y - 1 ] , pixel . x + 1 , pixel . y )
}
}
} else {
if ( isEmpty ( pixel . x + 1 , pixel . y + 1 ) && ! outOfBounds ( pixel . x + 1 , pixel . y + 1 ) ) {
tryMove ( pixelMap [ pixel . x + 1 ] [ pixel . y ] , pixel . x + 1 , pixel . y + 1 )
}
}
} else if ( ! conveyorIgnoreList . includes ( pixelMap [ pixel . x + 1 ] [ pixel . y ] . element ) ) {
tryMove ( pixelMap [ pixel . x + 1 ] [ pixel . y ] , pixel . x + 1 , pixel . y + 1 )
}
}
//bottom left
if ( ! isEmpty ( pixel . x , pixel . y + 1 ) && ! outOfBounds ( pixel . x , pixel . y + 1 ) ) {
if ( pixelMap [ pixel . x ] [ pixel . y + 1 ] . element == "head" ) {
if ( ! isEmpty ( pixel . x , pixel . y + 2 ) && ! outOfBounds ( pixel . x , pixel . y + 2 ) ) {
if ( pixelMap [ pixel . x ] [ pixel . y + 2 ] . element == "body" ) {
if ( isEmpty ( pixel . x - 1 , pixel . y + 1 ) && isEmpty ( pixel . x - 1 , pixel . y + 2 ) && ! outOfBounds ( pixel . x - 1 , pixel . y + 2 ) && ! outOfBounds ( pixel . x - 1 , pixel . y + 2 ) ) {
tryMove ( pixelMap [ pixel . x ] [ pixel . y + 1 ] , pixel . x - 1 , pixel . y + 1 )
tryMove ( pixelMap [ pixel . x ] [ pixel . y + 2 ] , pixel . x - 1 , pixel . y + 2 )
}
}
} else {
if ( isEmpty ( pixel . x - 1 , pixel . y + 1 ) && ! outOfBounds ( pixel . x - 1 , pixel . y + 1 ) ) {
tryMove ( pixelMap [ pixel . x ] [ pixel . y + 1 ] , pixel . x - 1 , pixel . y + 1 )
}
}
} else if ( ! conveyorIgnoreList . includes ( pixelMap [ pixel . x ] [ pixel . y + 1 ] . element ) ) {
tryMove ( pixelMap [ pixel . x ] [ pixel . y + 1 ] , pixel . x - 1 , pixel . y + 1 )
}
}
//left up
if ( ! isEmpty ( pixel . x - 1 , pixel . y ) && ! outOfBounds ( pixel . x - 1 , pixel . y ) ) {
if ( pixelMap [ pixel . x - 1 ] [ pixel . y ] . element == "head" ) {
if ( ! isEmpty ( pixel . x - 1 , pixel . y + 1 ) && ! outOfBounds ( pixel . x - 1 , pixel . y + 1 ) ) {
if ( pixelMap [ pixel . x - 1 ] [ pixel . y + 1 ] . element == "body" ) {
if ( isEmpty ( pixel . x - 1 , pixel . y - 1 ) && ! outOfBounds ( pixel . x - 1 , pixel . y - 1 ) ) {
tryMove ( pixelMap [ pixel . x - 1 ] [ pixel . y ] , pixel . x - 1 , pixel . y - 1 )
tryMove ( pixelMap [ pixel . x - 1 ] [ pixel . y + 1 ] , pixel . x - 1 , pixel . y )
}
}
} else {
if ( isEmpty ( pixel . x - 1 , pixel . y - 1 ) && ! outOfBounds ( pixel . x - 1 , pixel . y - 1 ) ) {
tryMove ( pixelMap [ pixel . x - 1 ] [ pixel . y ] , pixel . x - 1 , pixel . y - 1 )
}
}
} else if ( ! conveyorIgnoreList . includes ( pixelMap [ pixel . x - 1 ] [ pixel . y ] . element ) ) {
tryMove ( pixelMap [ pixel . x - 1 ] [ pixel . y ] , pixel . x - 1 , pixel . y - 1 )
}
}
} ,
category : "machines" ,
insulate : true ,
state : "solid" ,
} ,
elements . conveyor _2 = {
color : "#7f7f7f" ,
tick : function ( pixel ) {
//top left
if ( ! isEmpty ( pixel . x , pixel . y - 1 ) && ! outOfBounds ( pixel . x , pixel . y - 1 ) ) {
if ( pixelMap [ pixel . x ] [ pixel . y - 1 ] . element == "body" ) {
if ( ! isEmpty ( pixel . x , pixel . y - 2 ) && ! outOfBounds ( pixel . x , pixel . y - 2 ) ) {
if ( pixelMap [ pixel . x ] [ pixel . y - 2 ] . element == "head" ) {
if ( isEmpty ( pixel . x - 1 , pixel . y - 1 ) && isEmpty ( pixel . x - 1 , pixel . y - 2 ) && ! outOfBounds ( pixel . x - 1 , pixel . y - 1 ) && ! outOfBounds ( pixel . x - 1 , pixel . y - 2 ) ) {
tryMove ( pixelMap [ pixel . x ] [ pixel . y - 1 ] , pixel . x - 1 , pixel . y - 1 )
tryMove ( pixelMap [ pixel . x ] [ pixel . y - 2 ] , pixel . x - 1 , pixel . y - 2 )
}
}
} else {
if ( isEmpty ( pixel . x - 1 , pixel . y - 1 ) && ! outOfBounds ( pixel . x - 1 , pixel . y - 1 ) ) {
tryMove ( pixelMap [ pixel . x ] [ pixel . y - 1 ] , pixel . x - 1 , pixel . y - 1 )
}
}
} else if ( ! conveyorIgnoreList . includes ( pixelMap [ pixel . x ] [ pixel . y - 1 ] . element ) ) {
tryMove ( pixelMap [ pixel . x ] [ pixel . y - 1 ] , pixel . x - 1 , pixel . y - 1 )
}
}
//right up
if ( ! isEmpty ( pixel . x + 1 , pixel . y ) && ! outOfBounds ( pixel . x + 1 , pixel . y ) ) {
if ( pixelMap [ pixel . x + 1 ] [ pixel . y ] . element == "head" ) {
if ( ! isEmpty ( pixel . x + 1 , pixel . y + 1 ) && ! outOfBounds ( pixel . x + 1 , pixel . y + 1 ) ) {
if ( pixelMap [ pixel . x + 1 ] [ pixel . y + 1 ] . element == "body" ) {
if ( isEmpty ( pixel . x + 1 , pixel . y - 1 ) && ! outOfBounds ( pixel . x + 1 , pixel . y - 1 ) ) {
tryMove ( pixelMap [ pixel . x + 1 ] [ pixel . y ] , pixel . x + 1 , pixel . y - 1 )
tryMove ( pixelMap [ pixel . x + 1 ] [ pixel . y + 1 ] , pixel . x + 1 , pixel . y )
}
}
} else {
if ( isEmpty ( pixel . x + 1 , pixel . y - 1 ) && ! outOfBounds ( pixel . x + 1 , pixel . y - 1 ) ) {
tryMove ( pixelMap [ pixel . x + 1 ] [ pixel . y ] , pixel . x + 1 , pixel . y - 1 )
}
}
} else if ( ! conveyorIgnoreList . includes ( pixelMap [ pixel . x + 1 ] [ pixel . y ] . element ) ) {
tryMove ( pixelMap [ pixel . x + 1 ] [ pixel . y ] , pixel . x + 1 , pixel . y - 1 )
}
}
//bottom right
if ( ! isEmpty ( pixel . x , pixel . y + 1 ) && ! outOfBounds ( pixel . x , pixel . y + 1 ) ) {
if ( pixelMap [ pixel . x ] [ pixel . y + 1 ] . element == "head" ) {
if ( ! isEmpty ( pixel . x , pixel . y + 2 ) && ! outOfBounds ( pixel . x , pixel . y + 2 ) ) {
if ( pixelMap [ pixel . x ] [ pixel . y + 2 ] . element == "body" ) {
if ( isEmpty ( pixel . x + 1 , pixel . y + 1 ) && isEmpty ( pixel . x + 1 , pixel . y + 2 ) && ! outOfBounds ( pixel . x + 1 , pixel . y + 2 ) && ! outOfBounds ( pixel . x + 1 , pixel . y + 2 ) ) {
tryMove ( pixelMap [ pixel . x ] [ pixel . y + 1 ] , pixel . x + 1 , pixel . y + 1 )
tryMove ( pixelMap [ pixel . x ] [ pixel . y + 2 ] , pixel . x + 1 , pixel . y + 2 )
}
}
} else {
if ( isEmpty ( pixel . x + 1 , pixel . y + 1 ) && ! outOfBounds ( pixel . x + 1 , pixel . y + 1 ) ) {
tryMove ( pixelMap [ pixel . x ] [ pixel . y + 1 ] , pixel . x + 1 , pixel . y + 1 )
}
}
} else if ( ! conveyorIgnoreList . includes ( pixelMap [ pixel . x ] [ pixel . y + 1 ] . element ) ) {
tryMove ( pixelMap [ pixel . x ] [ pixel . y + 1 ] , pixel . x + 1 , pixel . y + 1 )
}
}
//left down
if ( ! isEmpty ( pixel . x - 1 , pixel . y ) && ! outOfBounds ( pixel . x - 1 , pixel . y ) ) {
if ( pixelMap [ pixel . x - 1 ] [ pixel . y ] . element == "body" ) {
if ( ! isEmpty ( pixel . x - 1 , pixel . y - 1 ) && ! outOfBounds ( pixel . x - 1 , pixel . y - 1 ) ) {
if ( pixelMap [ pixel . x - 1 ] [ pixel . y - 1 ] . element == "head" ) {
if ( isEmpty ( pixel . x - 1 , pixel . y + 1 ) && ! outOfBounds ( pixel . x - 1 , pixel . y + 1 ) ) {
tryMove ( pixelMap [ pixel . x - 1 ] [ pixel . y ] , pixel . x - 1 , pixel . y + 1 )
tryMove ( pixelMap [ pixel . x - 1 ] [ pixel . y - 1 ] , pixel . x - 1 , pixel . y )
}
}
} else {
if ( isEmpty ( pixel . x - 1 , pixel . y + 1 ) && ! outOfBounds ( pixel . x - 1 , pixel . y + 1 ) ) {
tryMove ( pixelMap [ pixel . x - 1 ] [ pixel . y ] , pixel . x - 1 , pixel . y + 1 )
}
}
} else if ( ! conveyorIgnoreList . includes ( pixelMap [ pixel . x - 1 ] [ pixel . y ] . element ) ) {
tryMove ( pixelMap [ pixel . x - 1 ] [ pixel . y ] , pixel . x - 1 , pixel . y + 1 )
}
}
} ,
category : "machines" ,
insulate : true ,
state : "solid" ,
2022-02-02 10:56:15 -05:00
} ,
2022-02-08 09:28:39 -05:00
this . aaa = [ "plasma" , "plasma" , "plasma" , "plasma" , "plasma" , "plasma" , "plasma" , "plasma" , "plasma" , "plasma" , "plasma" , "plasma" , "smoke" , "plasma" , "plasma" , "fire" , "smoke" , "fire" , "smoke" , "plasma" , "metal_scrap" , "metal_scrap" , "metal_scrap" , "metal_scrap" , "metal_scrap" , "acid" , "acid" , "oil" , "oil" , "oil" , "oil" , "oil" , "oil" , "oil" , "plasma" , "plasma" , "plasma" , "plasma" , "plasma" , "smoke" , "plasma" , "plasma" , "fire" , "smoke" , "plasma" , "metal_scrap" , "metal_scrap" , "metal_scrap" , "metal_scrap" , "metal_scrap" , "metal_scrap" , "flash" , "flash" , "flash" , "flash" , "flash" , "acid_gas" , "acid_gas" , "acid_gas" , "acid" , "oil" , "oil" , "oil" , "oil" , "oil" , "oil" , "oil" , "oil" , "oil" , "oil" , "plasma" , "plasma" , "plasma" , "plasma" , "metal_scrap" , "metal_scrap" , "metal_scrap" , "metal_scrap" , "metal_scrap" , "acid" , "acid" , "oil" , "oil" , "oil" , "oil" , "oil" , "oil" , "oil" , "plasma" , "plasma" , "plasma" , "plasma" , "plasma" , "smoke" , "plasma" , "plasma" , "fire" , "smoke" , "plasma" , "metal_scrap" , "metal_scrap" , "metal_scrap" , "metal_scrap" , "metal_scrap" , "metal_scrap" , "seb" , "seb" , "flash" , "flash" , "flash" , "flash" , "flash" , "acid_gas" , "acid_gas" , "acid_gas" , "acid" , "oil" , "oil" , "oil" , "oil" , "oil" , "oil" , "oil" , "oil" , "oil" , "oil" , "plasma" , "plasma" , "plasma" , "plasma" , "plague" , "plague" , "plague" , "plague" , "plague" , "plague" , "radiation" , "radiation" , "radiation" , "radiation" , "radiation" , "radiation" , "radiation" , "radiation" , "uranium" , "uranium" , "uranium" , "uranium" , "uranium" , "uranium" , "greek_fire" , "greek_fire" , "greek_fire" , "greek_fire" , "greek_fire" , "antimatter" , "antimatter" , "antimatter" , "antimatter" , "antimatter" , "smoke_grenade" , "antimatter" , "smoke_grenade" , "fireball" , "flash" , "acid_gas" , "acid_gas" , "acid_gas" , "plague" , "plague" , "plague" , "plague" , "plague" , "plague" , "radiation" , "radiation" , "radiation" , "radiation" , "radiation" , "radiation" , "radiation" , "radiation" , "uranium" , "uranium" , "uranium" , "uranium" , "uranium" , "uranium" , "greek_fire" , "greek_fire" , "greek_fire" , "greek_fire" , "greek_fire" , "antimatter" , "antimatter" , "antimatter" , "antimatter" , "antimatter" , "smoke_grenade" , "antimatter" , "flash" , "acid_gas" , "acid_gas" , "acid_gas" , "radiation" , "radiation" , "radiation" , "radiation" , "plague" , "acid_gas" , "acid_gas" , "acid_gas" ]
2022-02-02 10:56:15 -05:00
2022-02-08 09:28:39 -05:00
this . bbb = [ "smoke" , "smoke" , "smoke" , "metal_scrap" , "metal_scrap" , "metal_scrap" , "metal_scrap" , "metal_scrap" , "acid" , "acid" , "oil" , "oil" , "oil" , "oil" , "oil" , "oil" , "oil" , "smoke" , "smoke" , "metal_scrap" , "metal_scrap" , "metal_scrap" , "metal_scrap" , "metal_scrap" , "metal_scrap" , "flash" , "flash" , "flash" , "flash" , "flash" , "acid_gas" , "acid_gas" , "acid_gas" , "acid" , "oil" , "oil" , "oil" , "oil" , "oil" , "oil" , "oil" , "oil" , "oil" , "oil" , "metal_scrap" , "metal_scrap" , "metal_scrap" , "metal_scrap" , "metal_scrap" , "acid" , "acid" , "oil" , "oil" , "oil" , "oil" , "oil" , "oil" , "oil" , "smoke" , "smoke" , "metal_scrap" , "metal_scrap" , "metal_scrap" , "metal_scrap" , "metal_scrap" , "metal_scrap" , "seb" , "flash" , "flash" , "flash" , "flash" , "flash" , "acid_gas" , "acid_gas" , "acid_gas" , "acid" , "oil" , "oil" , "oil" , "oil" , "oil" , "oil" , "oil" , "oil" , "oil" , "oil" , "plague" , "plague" , "plague" , "plague" , "plague" , "plague" , "radiation" , "radiation" , "radiation" , "radiation" , "radiation" , "radiation" , "radiation" , "radiation" , "uranium" , "uranium" , "uranium" , "uranium" , "uranium" , "uranium" , "greek_fire" , "greek_fire" , "greek_fire" , "greek_fire" , "greek_fire" , "antimatter" , "antimatter" , "antimatter" , "antimatter" , "antimatter" , "smoke_grenade" , "antimatter" , "smoke_grenade" , "flash" , "acid_gas" , "acid_gas" , "acid_gas" , "plague" , "plague" , "plague" , "plague" , "plague" , "plague" , "radiation" , "radiation" , "radiation" , "radiation" , "radiation" , "radiation" , "radiation" , "radiation" , "uranium" , "uranium" , "uranium" , "uranium" , "uranium" , "uranium" , "greek_fire" , "greek_fire" , "greek_fire" , "greek_fire" , "greek_fire" , "antimatter" , "smoke_grenade" , "flash" , "acid_gas" , "acid_gas" , "acid_gas" , "radiation" , "radiation" , "radiation" , "radiation" , "plague" , "acid_gas" , "acid_gas" , "acid_gas" ]
2022-02-02 10:56:15 -05:00
elements . amalgamated _bomb = {
color : [ "#FF0000" , "#FF0000" , "#FFFF00" , "#FFFF00" , "#00FF00" , "#00FF00" , "#0000FF" , "#0000FF" ] ,
tick : function ( pixel ) {
eee = Math . random ( )
doHeat ( pixel ) ;
if ( ! isEmpty ( pixel . x , pixel . y - 1 ) && ! outOfBounds ( pixel . x , pixel . y - 1 ) ) {
if ( pixelMap [ pixel . x ] [ pixel . y - 1 ] . element != pixel . element ) {
steppedOn = true
} else steppedOn = false
} else {
steppedOn = false
}
if ( ! isEmpty ( pixel . x , pixel . y + 1 ) && ! outOfBounds ( pixel . x , pixel . y + 1 ) ) {
if ( pixelMap [ pixel . x ] [ pixel . y + 1 ] . element != pixel . element ) {
landed = true
} else landed = false
} else {
landed = false
}
if ( outOfBounds ( pixel . x , pixel . y + 1 ) ) {
landed = true
}
tryMove ( pixel , pixel . x , pixel . y + 1 )
if ( steppedOn == true || landed == true ) {
fire = bbb
smoke = bbb
2022-02-08 09:28:39 -05:00
radius = 70
2022-02-02 10:56:15 -05:00
x = pixel . x
y = pixel . y
//SECONDARY
// if fire contains , split it into an array
if ( fire . includes ( "," ) ) {
fire = fire . split ( "," ) ;
}
// if smoke contains , split it into an array
if ( smoke . includes ( "," ) ) {
smoke = smoke . split ( "," ) ;
}
var coords = circleCoords ( x , y , radius ) ;
var power = radius / 10 ;
//for (var p = 0; p < Math.round(radius/10+1); p++) {
for ( var i = 0 ; i < coords . length ; i ++ ) {
// damage value is based on distance from x and y
var damage = Math . random ( ) + ( Math . floor ( Math . sqrt ( Math . pow ( coords [ i ] . x - x , 2 ) + Math . pow ( coords [ i ] . y - y , 2 ) ) ) ) / radius ;
// invert
damage = 1 - damage ;
if ( damage < 0 ) { damage = 0 ; }
damage *= power ;
if ( isEmpty ( coords [ i ] . x , coords [ i ] . y ) ) {
// create smoke or fire depending on the damage if empty
if ( damage < 0.02 ) { } // do nothing
else if ( damage < 0.2 ) {
// if smoke is an array, choose a random item
if ( Array . isArray ( smoke ) ) {
createPixel ( smoke [ Math . floor ( Math . random ( ) * smoke . length ) ] , coords [ i ] . x , coords [ i ] . y ) ;
}
else {
createPixel ( smoke , coords [ i ] . x , coords [ i ] . y ) ;
}
}
else {
// if fire is an array, choose a random item
if ( Array . isArray ( fire ) ) {
createPixel ( fire [ Math . floor ( Math . random ( ) * fire . length ) ] , coords [ i ] . x , coords [ i ] . y ) ;
}
else {
createPixel ( fire , coords [ i ] . x , coords [ i ] . y ) ;
}
}
}
else if ( ! outOfBounds ( coords [ i ] . x , coords [ i ] . y ) ) {
// damage the pixel
var pixel = pixelMap [ coords [ i ] . x ] [ coords [ i ] . y ] ;
var info = elements [ pixel . element ] ;
if ( info . hardness ) { // lower damage depending on hardness(0-1)
if ( info . hardness < 1 ) {
damage = damage * ( ( 1 - info . hardness ) * 10 ) ;
}
else { damage = 0 ; }
}
if ( damage > 0.25 ) {
if ( info . breakInto ) {
// if it is an array, choose a random item, else just use the value
if ( Array . isArray ( info . breakInto ) ) {
var result = info . breakInto [ Math . floor ( Math . random ( ) * info . breakInto . length ) ] ;
}
else {
var result = info . breakInto ;
}
// change the pixel to the result
pixel . element = result ;
pixel . color = pixelColorPick ( pixel ) ;
if ( elements [ result ] . burning ) {
pixel . burning = true ;
pixel . burnStart = pixelTicks ;
}
else if ( pixel . burning && ! elements [ result ] . burn ) {
pixel . burning = false ;
delete pixel . burnStart ;
}
}
else {
if ( Array . isArray ( fire ) ) {
var newfire = fire [ Math . floor ( Math . random ( ) * fire . length ) ] ;
}
else {
var newfire = fire ;
}
pixel . element = newfire ;
pixel . color = pixelColorPick ( pixel ) ;
if ( elements [ newfire ] . burning ) {
pixel . burning = true ;
pixel . burnStart = pixelTicks ;
}
else if ( pixel . burning && ! elements [ newfire ] . burn ) {
pixel . burning = false ;
delete pixel . burnStart ;
}
}
}
if ( damage > 0.75 ) {
if ( info . burn ) {
pixel . burning = true ;
pixel . burnStart = pixelTicks ;
}
}
pixel . temp += damage * radius * power ;
pixelTempCheck ( pixel ) ;
}
}
fire = aaa
smoke = aaa
2022-02-08 09:28:39 -05:00
radius = 35
2022-02-02 10:56:15 -05:00
//PRIMARY
// if fire contains , split it into an array
if ( fire . includes ( "," ) ) {
fire = fire . split ( "," ) ;
}
// if smoke contains , split it into an array
if ( smoke . includes ( "," ) ) {
smoke = smoke . split ( "," ) ;
}
var coords = circleCoords ( x , y , radius ) ;
var power = radius / 10 ;
//for (var p = 0; p < Math.round(radius/10+1); p++) {
for ( var i = 0 ; i < coords . length ; i ++ ) {
// damage value is based on distance from x and y
var damage = Math . random ( ) + ( Math . floor ( Math . sqrt ( Math . pow ( coords [ i ] . x - x , 2 ) + Math . pow ( coords [ i ] . y - y , 2 ) ) ) ) / radius ;
// invert
damage = 1 - damage ;
if ( damage < 0 ) { damage = 0 ; }
damage *= power ;
if ( isEmpty ( coords [ i ] . x , coords [ i ] . y ) ) {
// create smoke or fire depending on the damage if empty
if ( damage < 0.02 ) { } // do nothing
else if ( damage < 0.2 ) {
// if smoke is an array, choose a random item
if ( Array . isArray ( smoke ) ) {
createPixel ( smoke [ Math . floor ( Math . random ( ) * smoke . length ) ] , coords [ i ] . x , coords [ i ] . y ) ;
}
else {
createPixel ( smoke , coords [ i ] . x , coords [ i ] . y ) ;
}
}
else {
// if fire is an array, choose a random item
if ( Array . isArray ( fire ) ) {
createPixel ( fire [ Math . floor ( Math . random ( ) * fire . length ) ] , coords [ i ] . x , coords [ i ] . y ) ;
}
else {
createPixel ( fire , coords [ i ] . x , coords [ i ] . y ) ;
}
}
}
else if ( ! outOfBounds ( coords [ i ] . x , coords [ i ] . y ) ) {
// damage the pixel
var pixel = pixelMap [ coords [ i ] . x ] [ coords [ i ] . y ] ;
var info = elements [ pixel . element ] ;
if ( info . hardness ) { // lower damage depending on hardness(0-1)
if ( info . hardness < 1 ) {
damage = damage * ( ( 1 - info . hardness ) * 10 ) ;
}
else { damage = 0 ; }
}
if ( damage > 0.25 ) {
if ( info . breakInto ) {
// if it is an array, choose a random item, else just use the value
if ( Array . isArray ( info . breakInto ) ) {
var result = info . breakInto [ Math . floor ( Math . random ( ) * info . breakInto . length ) ] ;
}
else {
var result = info . breakInto ;
}
// change the pixel to the result
pixel . element = result ;
pixel . color = pixelColorPick ( pixel ) ;
if ( elements [ result ] . burning ) {
pixel . burning = true ;
pixel . burnStart = pixelTicks ;
}
else if ( pixel . burning && ! elements [ result ] . burn ) {
pixel . burning = false ;
delete pixel . burnStart ;
}
}
else {
if ( Array . isArray ( fire ) ) {
var newfire = fire [ Math . floor ( Math . random ( ) * fire . length ) ] ;
}
else {
var newfire = fire ;
}
pixel . element = newfire ;
pixel . color = pixelColorPick ( pixel ) ;
if ( elements [ newfire ] . burning ) {
pixel . burning = true ;
pixel . burnStart = pixelTicks ;
}
else if ( pixel . burning && ! elements [ newfire ] . burn ) {
pixel . burning = false ;
delete pixel . burnStart ;
}
}
}
if ( damage > 0.75 ) {
if ( info . burn ) {
pixel . burning = true ;
pixel . burnStart = pixelTicks ;
}
}
pixel . temp += damage * radius * power ;
pixelTempCheck ( pixel ) ;
}
}
}
} ,
category : "weapons" ,
state : "solid" ,
density : 1800 ,
excludeRandom : true ,
extraInfo : "a little bit of everything <img aria-label=\":eggTF:\" src=\"https://cdn.discordapp.com/emojis/861270810151616545.png\" alt=\":eggTF:\" draggable=\"false\" data-type=\"emoji\" data-id=\"861270810151616545\" style=\"-o-object-fit: contain; object-fit: contain; width: 1.375em; height: 1.375em; vertical-align: bottom; text-indent: -9999px;\" title=\":eggTF:\"> " ,
} ,
elements . colder _bomb = {
color : "#43648e" ,
tick : function ( pixel ) {
eee = Math . random ( )
doHeat ( pixel ) ;
if ( ! isEmpty ( pixel . x , pixel . y - 1 ) && ! outOfBounds ( pixel . x , pixel . y - 1 ) ) {
if ( pixelMap [ pixel . x ] [ pixel . y - 1 ] . element != pixel . element ) {
steppedOn = true
} else steppedOn = false
} else {
steppedOn = false
}
if ( ! isEmpty ( pixel . x , pixel . y + 1 ) && ! outOfBounds ( pixel . x , pixel . y + 1 ) ) {
if ( pixelMap [ pixel . x ] [ pixel . y + 1 ] . element != pixel . element ) {
landed = true
} else landed = false
} else {
landed = false
}
if ( outOfBounds ( pixel . x , pixel . y + 1 ) ) {
landed = true
}
tryMove ( pixel , pixel . x , pixel . y + 1 )
if ( steppedOn == true || landed == true ) {
fire = [ "cold_fire" , "cold_fire" , "cold_fire" , "snow" , "liquid_nitrogen" ]
smoke = [ "cold_fire" , "snow" , "liquid_nitrogen" ]
2022-02-03 21:55:49 -05:00
if ( enabledMods . includes ( "mods/some_tf_liquids.js" ) ) {
fire . push ( "gelid_cryotheum" )
}
2022-02-02 10:56:15 -05:00
radius = 15
x = pixel . x
y = pixel . y
// if fire contains , split it into an array
if ( fire . includes ( "," ) ) {
fire = fire . split ( "," ) ;
}
// if smoke contains , split it into an array
if ( smoke . includes ( "," ) ) {
smoke = smoke . split ( "," ) ;
}
var coords = circleCoords ( x , y , radius ) ;
var power = radius / 10 ;
//for (var p = 0; p < Math.round(radius/10+1); p++) {
for ( var i = 0 ; i < coords . length ; i ++ ) {
// damage value is based on distance from x and y
var damage = Math . random ( ) + ( Math . floor ( Math . sqrt ( Math . pow ( coords [ i ] . x - x , 2 ) + Math . pow ( coords [ i ] . y - y , 2 ) ) ) ) / radius ;
// invert
damage = 1 - damage ;
if ( damage < 0 ) { damage = 0 ; }
damage *= power ;
if ( isEmpty ( coords [ i ] . x , coords [ i ] . y ) ) {
// create smoke or fire depending on the damage if empty
if ( damage < 0.02 ) { } // do nothing
else if ( damage < 0.2 ) {
// if smoke is an array, choose a random item
if ( Array . isArray ( smoke ) ) {
createPixel ( smoke [ Math . floor ( Math . random ( ) * smoke . length ) ] , coords [ i ] . x , coords [ i ] . y ) ;
}
else {
createPixel ( smoke , coords [ i ] . x , coords [ i ] . y ) ;
}
}
else {
// if fire is an array, choose a random item
if ( Array . isArray ( fire ) ) {
createPixel ( fire [ Math . floor ( Math . random ( ) * fire . length ) ] , coords [ i ] . x , coords [ i ] . y ) ;
}
else {
createPixel ( fire , coords [ i ] . x , coords [ i ] . y ) ;
}
}
}
else if ( ! outOfBounds ( coords [ i ] . x , coords [ i ] . y ) ) {
// damage the pixel
var pixel = pixelMap [ coords [ i ] . x ] [ coords [ i ] . y ] ;
var info = elements [ pixel . element ] ;
if ( info . hardness ) { // lower damage depending on hardness(0-1)
if ( info . hardness < 1 ) {
damage = damage * ( ( 1 - info . hardness ) * 10 ) ;
}
else { damage = 0 ; }
}
if ( damage > 0.25 ) {
if ( info . breakInto ) {
// if it is an array, choose a random item, else just use the value
if ( Array . isArray ( info . breakInto ) ) {
var result = info . breakInto [ Math . floor ( Math . random ( ) * info . breakInto . length ) ] ;
}
else {
var result = info . breakInto ;
}
// change the pixel to the result
pixel . element = result ;
pixel . color = pixelColorPick ( pixel ) ;
if ( elements [ result ] . burning ) {
pixel . burning = true ;
pixel . burnStart = pixelTicks ;
}
else if ( pixel . burning && ! elements [ result ] . burn ) {
pixel . burning = false ;
delete pixel . burnStart ;
}
}
else {
if ( Array . isArray ( fire ) ) {
var newfire = fire [ Math . floor ( Math . random ( ) * fire . length ) ] ;
}
else {
var newfire = fire ;
}
pixel . element = newfire ;
pixel . color = pixelColorPick ( pixel ) ;
if ( elements [ newfire ] . burning ) {
pixel . burning = true ;
pixel . burnStart = pixelTicks ;
}
else if ( pixel . burning && ! elements [ newfire ] . burn ) {
pixel . burning = false ;
delete pixel . burnStart ;
}
}
}
if ( damage > 0.75 ) {
if ( info . burn ) {
pixel . burning = true ;
pixel . burnStart = pixelTicks ;
}
}
pixel . temp -= damage * radius * power ;
pixelTempCheck ( pixel ) ;
}
}
}
} ,
category : "weapons" ,
state : "solid" ,
density : 1300 ,
excludeRandom : true ,
} ,
elements . op _hottester _bomb = {
color : "#cc436e" ,
tick : function ( pixel ) {
eee = Math . random ( )
doHeat ( pixel ) ;
if ( ! isEmpty ( pixel . x , pixel . y - 1 ) && ! outOfBounds ( pixel . x , pixel . y - 1 ) ) {
if ( pixelMap [ pixel . x ] [ pixel . y - 1 ] . element != pixel . element ) {
steppedOn = true
} else steppedOn = false
} else {
steppedOn = false
}
if ( ! isEmpty ( pixel . x , pixel . y + 1 ) && ! outOfBounds ( pixel . x , pixel . y + 1 ) ) {
if ( pixelMap [ pixel . x ] [ pixel . y + 1 ] . element != pixel . element ) {
landed = true
} else landed = false
} else {
landed = false
}
if ( outOfBounds ( pixel . x , pixel . y + 1 ) ) {
landed = true
}
tryMove ( pixel , pixel . x , pixel . y + 1 )
if ( steppedOn == true || landed == true ) {
fire = "plasma"
smoke = "plasma"
radius = 15
x = pixel . x
y = pixel . y
// if fire contains , split it into an array
if ( fire . includes ( "," ) ) {
fire = fire . split ( "," ) ;
}
// if smoke contains , split it into an array
if ( smoke . includes ( "," ) ) {
smoke = smoke . split ( "," ) ;
}
var coords = circleCoords ( x , y , radius ) ;
var power = radius / 10 ;
//for (var p = 0; p < Math.round(radius/10+1); p++) {
for ( var i = 0 ; i < coords . length ; i ++ ) {
// damage value is based on distance from x and y
var damage = Math . random ( ) + ( Math . floor ( Math . sqrt ( Math . pow ( coords [ i ] . x - x , 2 ) + Math . pow ( coords [ i ] . y - y , 2 ) ) ) ) / radius ;
// invert
damage = 1 - damage ;
if ( damage < 0 ) { damage = 0 ; }
damage *= power ;
if ( isEmpty ( coords [ i ] . x , coords [ i ] . y ) ) {
// create smoke or fire depending on the damage if empty
if ( damage < 0.02 ) { } // do nothing
else if ( damage < 0.2 ) {
// if smoke is an array, choose a random item
if ( Array . isArray ( smoke ) ) {
createPixel ( smoke [ Math . floor ( Math . random ( ) * smoke . length ) ] , coords [ i ] . x , coords [ i ] . y ) ;
}
else {
createPixel ( smoke , coords [ i ] . x , coords [ i ] . y ) ;
}
}
else {
// if fire is an array, choose a random item
if ( Array . isArray ( fire ) ) {
createPixel ( fire [ Math . floor ( Math . random ( ) * fire . length ) ] , coords [ i ] . x , coords [ i ] . y ) ;
}
else {
createPixel ( fire , coords [ i ] . x , coords [ i ] . y ) ;
}
}
}
else if ( ! outOfBounds ( coords [ i ] . x , coords [ i ] . y ) ) {
// damage the pixel
var pixel = pixelMap [ coords [ i ] . x ] [ coords [ i ] . y ] ;
var info = elements [ pixel . element ] ;
if ( info . hardness ) { // lower damage depending on hardness(0-1)
if ( info . hardness < 1 ) {
damage = damage * ( ( 1 - info . hardness ) * 10 ) ;
}
else { damage = 0 ; }
}
if ( damage <= 0.25 ) {
pixel . temp -= Math . floor ( ( damage * radius * power * 10 ) * * 1.3 )
}
if ( damage > 0.25 ) {
if ( info . breakInto ) {
// if it is an array, choose a random item, else just use the value
if ( Array . isArray ( info . breakInto ) ) {
var result = info . breakInto [ Math . floor ( Math . random ( ) * info . breakInto . length ) ] ;
}
else {
var result = info . breakInto ;
}
// change the pixel to the result
pixel . element = result ;
pixel . color = pixelColorPick ( pixel ) ;
if ( elements [ result ] . burning ) {
pixel . burning = false ;
}
else if ( pixel . burning && ! elements [ result ] . burn ) {
pixel . burning = false ;
}
}
else {
if ( Array . isArray ( fire ) ) {
var newfire = fire [ Math . floor ( Math . random ( ) * fire . length ) ] ;
}
else {
var newfire = fire ;
}
pixel . element = newfire ;
pixel . color = pixelColorPick ( pixel ) ;
if ( elements [ newfire ] . burning ) {
pixel . burning = false ;
}
else if ( pixel . burning && ! elements [ newfire ] . burn ) {
pixel . burning = false ;
}
}
pixel . temp -= Math . floor ( ( damage * radius * power * 15 ) * * 1.5 )
}
if ( damage > 0.75 ) {
if ( info . burn ) {
pixel . burning = false ;
pixel . temp -= Math . floor ( ( damage * radius * power * 20 ) * * 1.7 )
}
}
pixel . temp -= Math . floor ( ( damage * radius * power * 5 ) * * 1.1 ) ;
pixelTempCheck ( pixel ) ;
}
}
}
} ,
category : "weapons" ,
state : "solid" ,
temp : 7065 ,
density : 1300 ,
excludeRandom : true ,
2022-02-03 07:28:36 -05:00
} ,
2022-02-03 10:44:24 -05:00
elements . vanishing _wall = {
behavior : behaviors . WALL ,
color : "#8080b0" ,
density : 3333 ,
2022-02-03 07:28:36 -05:00
tick : function ( pixel ) {
2022-02-03 10:44:24 -05:00
pixelTick ( pixel )
if ( pixel . charge ) {
if ( ! isEmpty ( pixel . x , pixel . y ) ) {
deletePixel ( pixel . x , pixel . y )
}
}
2022-02-03 07:28:36 -05:00
} ,
category : "special" ,
2022-02-03 10:44:24 -05:00
state : "solid" ,
hardness : 1 ,
insulate : true ,
conduct : 1 ,
extraInfo : "It disappears when charged." ,
2022-02-05 22:05:29 -05:00
} ,
elements . polka _dotted _powder = {
color : [ "#000000" , "#000000" , "#7f7f7f" , "#ffffff" , "#ffffff" ] ,
behavior : behaviors . POWDER ,
category : "powders" ,
state : "solid" ,
density : 1400 ,
tick : function ( pixel ) {
if ( pixel . y % 6 == 0 ) {
if ( pixel . x % 6 == 0 ) {
pixel . color = "rgb(255,255,255)"
} else {
if ( ! settings . bg || settings . bg == "#000000" ) {
pixel . color = "rgb(15,15,15)"
} else {
pixel . color = "rgb(0,0,0)"
}
}
} else if ( ( pixel . y + 3 ) % 6 == 0 ) {
if ( ( pixel . x + 3 ) % 6 == 0 ) {
pixel . color = "rgb(255,255,255)"
} else {
if ( ! settings . bg || settings . bg == "#000000" ) {
pixel . color = "rgb(15,15,15)"
} else {
pixel . color = "rgb(0,0,0)"
}
}
} else {
if ( ! settings . bg || settings . bg == "#000000" ) {
pixel . color = "rgb(15,15,15)"
} else {
pixel . color = "rgb(0,0,0)"
}
}
} ,
tempHigh : 800 ,
} ,
elements . molten _polka _dotted _powder = {
color : [ "#ff7f00" , "#ff7f00" , "#ff9f00" , "#ffbf00" , "#ffbf00" ] ,
density : 1100 ,
tick : function ( pixel ) {
if ( pixel . y % 6 == 0 ) {
if ( pixel . x % 6 == 0 ) {
pixel . color = "rgb(255,191,0)"
} else {
if ( ! settings . bg || settings . bg == "#ff7f00" ) {
pixel . color = "rgb(255,143,16)"
} else {
pixel . color = "rgb(255,127,16)"
}
}
} else if ( ( pixel . y + 3 ) % 6 == 0 ) {
if ( ( pixel . x + 3 ) % 6 == 0 ) {
pixel . color = "rgb(255,191,0)"
} else {
if ( ! settings . bg || settings . bg == "#ff7f00" ) {
pixel . color = "rgb(255,143,16)"
} else {
pixel . color = "rgb(255,127,16)"
}
}
} else {
if ( ! settings . bg || settings . bg == "#ff7f00" ) {
pixel . color = "rgb(255,143,16)"
} else {
pixel . color = "rgb(255,127,16)"
}
}
} ,
temp : 850 ,
tempLow : 800 ,
stateLow : "polka_dotted_powder" ,
tempHigh : 2000 ,
stateHigh : "vaporized_polka_dotted_powder" ,
viscosity : 6 ,
hidden : true ,
} ,
elements . vaporized _polka _dotted _powder = {
color : [ "#ffdf7f" , "#ffdf7f" , "#ffefbf" , "#ffffff" , "#ffffff" ] ,
behavior : behaviors . GAS ,
category : "gases" ,
state : "gas" ,
density : 550 ,
tick : function ( pixel ) {
if ( pixel . y % 6 == 0 ) {
if ( pixel . x % 6 == 0 ) {
pixel . color = "rgb(255,255,255)"
} else {
if ( ! settings . bg || settings . bg == "#ffdf7f" ) {
pixel . color = "rgb(255,233,137)"
} else {
pixel . color = "rgb(255,223,127)"
}
}
} else if ( ( pixel . y + 3 ) % 6 == 0 ) {
if ( ( pixel . x + 3 ) % 6 == 0 ) {
pixel . color = "rgb(255,255,255)"
} else {
if ( ! settings . bg || settings . bg == "#ffdf7f" ) {
pixel . color = "rgb(255,143,16)"
} else {
pixel . color = "rgb(255,233,137)"
}
}
} else {
if ( ! settings . bg || settings . bg == "#ffdf7f" ) {
pixel . color = "rgb(255,233,137)"
} else {
pixel . color = "rgb(255,223,127)"
}
}
} ,
temp : 2200 ,
tempLow : 2000 ,
stateLow : "molten_polka_dotted_powder" ,
tempHigh : 8000 ,
stateHigh : "ionized_polka_dotted_powder" ,
hidden : true ,
} ,
elements . ionized _polka _dotted _powder = {
color : [ "#fffff0" , "#fffff0" , "#fffff7" , "#ffffff" , "#ffffff" ] ,
behavior : [
"M2 AND CR:plasma%0.3|M1|M2 AND CR:plasma%0.3" ,
"M1|XX|M1" ,
"M2 AND CR:plasma%0.3|M1|M2 AND CR:plasma%0.3" ,
] ,
category : "gases" ,
state : "gas" ,
density : 0.02 ,
tick : function ( pixel ) {
if ( pixel . y % 6 == 0 ) {
if ( pixel . x % 6 == 0 ) {
pixel . color = "rgb(255,255,255)"
} else {
if ( ! settings . bg || settings . bg == "#fffff0" ) {
pixel . color = "rgb(255,255,247)"
} else {
pixel . color = "rgb(255,255,240)"
}
}
} else if ( ( pixel . y + 3 ) % 6 == 0 ) {
if ( ( pixel . x + 3 ) % 6 == 0 ) {
pixel . color = "rgb(255,255,255)"
} else {
if ( ! settings . bg || settings . bg == "#fffff0" ) {
pixel . color = "rgb(255,255,247)"
} else {
pixel . color = "rgb(255,255,240)"
}
}
} else {
if ( ! settings . bg || settings . bg == "#fffff0" ) {
pixel . color = "rgb(255,255,247)"
} else {
pixel . color = "rgb(255,255,240)"
}
}
} ,
temp : 8500 ,
tempLow : 8000 ,
stateLow : "vaporized_polka_dotted_powder" ,
hidden : true ,
2022-02-15 11:50:22 -05:00
} ,
elements . hdet = {
name : "heat- dependent explosion text" ,
color : "#33aa44" ,
behavior : behaviors . POWDER ,
tick : function ( pixel ) {
if ( pixel . charge > 0 ) {
var temp = pixel . temp
if ( temp < 0 ) {
temp = 0
}
if ( temp >= 0 && temp < 1 ) {
temp = 1
}
if ( temp > 56000 ) {
temp = 56000
}
if ( isNaN ( temp ) || isNaN ( pixel . temp ) ) {
temp = 20
pixel . temp = 20
}
2022-02-15 14:05:21 -05:00
var r = ( ( Math . sqrt ( ( Math . log ( temp ) / Math . log ( 20 ) ) ) * ( temp * * 0.5 ) ) / ( 6000 * * 0.126284318 ) ) / 2
2022-02-15 11:50:22 -05:00
explodeAt ( pixel . x , pixel . y , Math . floor ( r ) )
if ( temp > 200 ) {
2022-02-15 14:05:21 -05:00
if ( Math . random ( ) < ( Math . log ( temp ) / Math . log ( 56000 ) ) * * 9 ) {
2022-02-15 11:50:22 -05:00
pixel . charge = 1
if ( pixel . chargeCD ) {
delete pixel . chargeCD
}
}
}
if ( isNaN ( temp ) || isNaN ( pixel . temp ) ) {
temp = 20
pixel . temp = 20
}
}
} ,
density : 1200 ,
conduct : 0.5 ,
state : "solid" ,
category : "special"
2022-02-16 13:35:47 -05:00
} ,
function randInt ( max ) {
return Math . floor ( Math . random ( ) * ( max + 1 ) )
}
function randIntR ( min , max ) {
return Math . floor ( Math . random ( ) * ( max - min + 1 ) ) + min
}
elements . test293 = {
color : "#f0e7e0" ,
behavior : [
"XX|SA%40 AND ST|XX" ,
"M2%10 AND SA%40 AND ST|XX|M2%10 AND SA%40 AND ST" ,
"M2 AND M1%10|M1 AND SA%40 AND ST|M2 AND M1%10"
] ,
category : "weapons" ,
state : "solid" ,
density : 2222.22 ,
tick : function ( pixel ) {
if ( pixel . burning ) {
if ( pixel . burning == true ) {
if ( isEmpty ( pixel . x , pixel . y - 1 ) ) {
if ( Math . random ( ) < 0.04 ) { createPixel ( "fire" , pixel . x , pixel . y - 1 ) }
if ( Math . random ( ) < 0.04 ) { pixel . temp ++ }
}
if ( isEmpty ( pixel . x , pixel . y + 1 ) ) {
if ( Math . random ( ) < 0.04 ) { createPixel ( "fire" , pixel . x , pixel . y + 1 ) }
if ( Math . random ( ) < 0.04 ) { pixel . temp ++ }
}
if ( isEmpty ( pixel . x - 1 , pixel . y ) ) {
if ( Math . random ( ) < 0.04 ) { createPixel ( "fire" , pixel . x - 1 , pixel . y ) }
if ( Math . random ( ) < 0.04 ) { pixel . temp ++ }
}
if ( isEmpty ( pixel . x + 1 , pixel . y ) ) {
if ( Math . random ( ) < 0.04 ) { createPixel ( "fire" , pixel . x + 1 , pixel . y ) }
if ( Math . random ( ) < 0.04 ) { pixel . temp ++ }
}
if ( Math . random ( ) < 0.0001 ) { explodeAt ( pixel . x , pixel . y , randIntR ( 7 , 10 ) , ( "fire,fire,fire,fire,smoke," + pixel . element + "," + pixel . element ) ) }
}
}
doHeat ( pixel ) ;
} ,
burn : 300 ,
burnTime : 500 ,
} ,
elements . test293b = {
color : "#e0e7f0" ,
behavior : [
"XX|SA%40 AND ST|XX" ,
"M2%10 AND SA%40 AND ST|XX|M2%10 AND SA%40 AND ST" ,
"M2 AND M1%10|M1 AND SA%40 AND ST|M2 AND M1%10"
] ,
category : "weapons" ,
state : "solid" ,
density : 2222.22 ,
tick : function ( pixel ) {
for ( i = - 1 ; i < 2 ; i ++ ) {
for ( j = - 1 ; j < 2 ; j ++ ) {
if ( ! isEmpty ( pixel . x + i , pixel . y + j ) && ! outOfBounds ( pixel . x + i , pixel . y + j ) ) {
if ( pixelMap [ pixel . x + i ] [ pixel . y + j ] . element == "cold_fire" && ! pixel . burning ) {
pixel . burning = true
pixel . burnStart = pixelTicks
}
}
}
}
if ( pixel . burning ) {
if ( pixel . burning == true ) {
for ( i = - 1 ; i < 2 ; i ++ ) {
for ( j = - 1 ; j < 2 ; j ++ ) {
if ( ! isEmpty ( pixel . x + i , pixel . y + j ) && ! outOfBounds ( pixel . x + i , pixel . y + j ) ) {
if ( pixelMap [ pixel . x + i ] [ pixel . y + j ] . element == "fire" ) {
deletePixel ( pixel . x + i , pixel . y + j )
createPixel ( "cold_fire" , pixel . x + i , pixel . y + j )
}
pixelMap [ pixel . x + i ] [ pixel . y + j ] . temp -= randIntR ( 1 , 2 )
}
}
}
if ( isEmpty ( pixel . x , pixel . y - 1 ) ) {
if ( Math . random ( ) < 0.04 ) { createPixel ( "cold_fire" , pixel . x , pixel . y - 1 ) }
if ( Math . random ( ) < 0.04 ) { pixel . temp -- }
}
if ( isEmpty ( pixel . x , pixel . y + 1 ) ) {
if ( Math . random ( ) < 0.04 ) { createPixel ( "cold_fire" , pixel . x , pixel . y + 1 ) }
if ( Math . random ( ) < 0.04 ) { pixel . temp -- }
}
if ( isEmpty ( pixel . x - 1 , pixel . y ) ) {
if ( Math . random ( ) < 0.04 ) { createPixel ( "cold_fire" , pixel . x - 1 , pixel . y ) }
if ( Math . random ( ) < 0.04 ) { pixel . temp -- }
}
if ( isEmpty ( pixel . x + 1 , pixel . y ) ) {
if ( Math . random ( ) < 0.04 ) { createPixel ( "cold_fire" , pixel . x + 1 , pixel . y ) }
if ( Math . random ( ) < 0.04 ) { pixel . temp -- }
}
if ( Math . random ( ) < 0.0001 ) {
var amogus = randIntR ( 8 , 11 )
var amog1 = ( Math . ceil ( amogus / 2 ) ) * - 1
var amog2 = ( Math . ceil ( amogus / 2 ) ) + 1
explodeAt ( pixel . x , pixel . y , amogus , ( "cold_fire,cold_fire,cold_fire,cold_fire,cold_fire," + pixel . element + "," + pixel . element ) )
for ( i = amog1 ; i < amog2 ; i ++ ) {
for ( j = amog1 ; j < amog2 ; j ++ ) {
if ( ! isEmpty ( pixel . x + i , pixel . y + j ) && ! outOfBounds ( pixel . x + i , pixel . y + j ) ) {
pixelMap [ pixel . x + i ] [ pixel . y + j ] . temp -= randIntR ( 160 , 240 )
}
}
}
}
}
}
doHeat ( pixel ) ;
} ,
burn : 300 ,
burnTime : 500 ,
burnInto : "cold_fire" ,
2022-02-02 20:56:56 -05:00
}
2022-04-04 13:13:36 -04:00
elements . lower _color _copy = {
behavior : behaviors . POWDER ,
tick : function ( pixel ) {
if ( ! isEmpty ( pixel . x , pixel . y + 1 , true ) ) {
pixel . color = pixelMap [ pixel . x ] [ pixel . y + 1 ] . color ;
} else {
if ( settings . bg ) {
pixel . color = settings . bg ;
} else {
pixel . color = "#000000" ;
}
}
} ,
color : [ "#000000" , "#000000" , "#000000" , "#000000" , "#000000" , "#000000" , "#000000" , "#FF0000" , "#FF7F00" , "#FFFF00" , "#00FF00" , "#007FFF" , "#0000FF" , "#7F00FF" ] ,
density : 1250 ,
breakInto : [ "metal_scrap" , "glass_shard" ] ,
hardness : 0.7 ,
}
2022-02-02 10:56:15 -05:00
runAfterLoad ( function ( ) {
if ( enabledMods . includes ( "mods/fey_and_more.js" ) ) {
2022-04-04 13:13:36 -04:00
elements . lower _color _copy . breakInto . push ( "magic" )
2022-02-02 10:56:15 -05:00
aaa . push ( "poisonwater" )
aaa . push ( "poisonwater" )
aaa . push ( "poisonwater" )
aaa . push ( "poisonwater" )
aaa . push ( "mystic_fire" )
aaa . push ( "mystic_fire" )
aaa . push ( "firesea" )
aaa . push ( "firesea" )
aaa . push ( "firesea" )
aaa . push ( "poisonwater" )
aaa . push ( "poisonwater" )
aaa . push ( "poisonwater" )
aaa . push ( "poisonwater" )
aaa . push ( "mystic_fire" )
aaa . push ( "mystic_fire" )
aaa . push ( "firesea" )
aaa . push ( "firesea" )
aaa . push ( "firesea" )
aaa . push ( "lektre" )
aaa . push ( "lektre" )
aaa . push ( "lektre" )
bbb . push ( "poisonwater" )
bbb . push ( "poisonwater" )
bbb . push ( "poisonwater" )
bbb . push ( "poisonwater" )
bbb . push ( "mystic_fire" )
bbb . push ( "mystic_fire" )
bbb . push ( "firesea" )
bbb . push ( "firesea" )
bbb . push ( "firesea" )
bbb . push ( "poisonwater" )
bbb . push ( "poisonwater" )
bbb . push ( "poisonwater" )
bbb . push ( "poisonwater" )
bbb . push ( "mystic_fire" )
bbb . push ( "mystic_fire" )
bbb . push ( "firesea" )
bbb . push ( "firesea" )
bbb . push ( "firesea" )
bbb . push ( "lektre" )
bbb . push ( "lektre" )
bbb . push ( "lektre" )
}
if ( enabledMods . includes ( "mods/Neutronium Mod.js" ) ) {
aaa . push ( "flamer" )
aaa . push ( "flamebomb" )
aaa . push ( "flamer" )
aaa . push ( "flamebomb" )
bbb . push ( "flamer" )
bbb . push ( "flamebomb" )
bbb . push ( "flamer" )
bbb . push ( "flamebomb" )
2022-02-08 09:28:39 -05:00
bbb . push ( "toxin" )
bbb . push ( "toxin" )
bbb . push ( "toxin" )
bbb . push ( "chlorine" )
bbb . push ( "chlorine" )
bbb . push ( "chlorine" )
2022-02-02 10:56:15 -05:00
}
if ( enabledMods . includes ( "mods/randomness.js" ) ) {
aaa . push ( "burning_unnamed_gas" )
aaa . push ( "burning_unnamed_gas" )
aaa . push ( "burning_unnamed_gas" )
aaa . push ( "burning_unnamed_gas" )
aaa . push ( "warp" )
aaa . push ( "warp" )
aaa . push ( "warp" )
aaa . push ( "warp" )
aaa . push ( "warp" )
aaa . push ( "warp" )
aaa . push ( "bomb_2" )
aaa . push ( "bomb_2" )
aaa . push ( "op_hottester_bomb" )
bbb . push ( "unnamed_gas" )
bbb . push ( "unnamed_gas" )
bbb . push ( "unnamed_gas" )
bbb . push ( "unnamed_gas" )
bbb . push ( "warp" )
bbb . push ( "warp" )
bbb . push ( "warp" )
bbb . push ( "warp" )
bbb . push ( "warp" )
bbb . push ( "warp" )
}
2022-02-08 09:28:39 -05:00
if ( enabledMods . includes ( "mods/glenn_gases.js" ) ) {
bbb . push ( "electric_gas" )
bbb . push ( "electric_gas" )
bbb . push ( "electric_gas" )
bbb . push ( "corrosive_gas" )
bbb . push ( "iocalfaeus_gas" )
bbb . push ( "iocalfaeus_gas" )
bbb . push ( "iocalfaeus_gas" )
bbb . push ( "ignited_gas" )
bbb . push ( "ignited_gas" )
bbb . push ( "ignited_gas" )
bbb . push ( "finine" )
bbb . push ( "finine" )
bbb . push ( "finine" )
bbb . push ( "acidic_vapour" )
bbb . push ( "acidic_vapour" )
bbb . push ( "acidic_vapour" )
bbb . push ( "nitrous_gas" )
bbb . push ( "nitrous_gas" )
bbb . push ( "nitrous_gas" )
bbb . push ( "void_gas" )
bbb . push ( "void_gas" )
bbb . push ( "void_gas" )
bbb . push ( "black_damp" )
bbb . push ( "black_damp" )
bbb . push ( "black_damp" )
aaa . push ( "electric_gas" )
aaa . push ( "electric_gas" )
aaa . push ( "iocalfaeus_gas" )
aaa . push ( "iocalfaeus_gas" )
aaa . push ( "ignited_gas" )
aaa . push ( "ignited_gas" )
aaa . push ( "finine" )
aaa . push ( "finine" )
aaa . push ( "acidic_vapour" )
aaa . push ( "acidic_vapour" )
aaa . push ( "nitrous_gas" )
aaa . push ( "nitrous_gas" )
aaa . push ( "void_gas" )
aaa . push ( "void_gas" )
aaa . push ( "black_damp" )
aaa . push ( "black_damp" )
}
if ( enabledMods . includes ( "mods/some_tf_liquids.js" ) ) {
bbb . push ( "blazing_pyrotheum" )
bbb . push ( "blazing_pyrotheum" )
bbb . push ( "blazing_pyrotheum" )
bbb . push ( "blazing_pyrotheum" )
bbb . push ( "blazing_pyrotheum" )
bbb . push ( "blazing_pyrotheum" )
bbb . push ( "tectonic_petrotheum" )
bbb . push ( "tectonic_petrotheum" )
bbb . push ( "tectonic_petrotheum" )
bbb . push ( "resonant_ender" )
bbb . push ( "resonant_ender" )
bbb . push ( "resonant_ender" )
aaa . push ( "blazing_pyrotheum" )
aaa . push ( "blazing_pyrotheum" )
aaa . push ( "blazing_pyrotheum" )
aaa . push ( "blazing_pyrotheum" )
aaa . push ( "blazing_pyrotheum" )
aaa . push ( "blazing_pyrotheum" )
aaa . push ( "tectonic_petrotheum" )
aaa . push ( "tectonic_petrotheum" )
aaa . push ( "tectonic_petrotheum" )
aaa . push ( "resonant_ender" )
aaa . push ( "resonant_ender" )
aaa . push ( "resonant_ender" )
aaa . push ( "blazing_pyrotheum" )
aaa . push ( "blazing_pyrotheum" )
aaa . push ( "blazing_pyrotheum" )
aaa . push ( "blazing_pyrotheum" )
aaa . push ( "blazing_pyrotheum" )
aaa . push ( "blazing_pyrotheum" )
aaa . push ( "tectonic_petrotheum" )
aaa . push ( "tectonic_petrotheum" )
aaa . push ( "tectonic_petrotheum" )
aaa . push ( "resonant_ender" )
aaa . push ( "resonant_ender" )
aaa . push ( "resonant_ender" )
}
2022-02-02 10:56:15 -05:00
} ) ;