2024-06-21 07:56:47 -04:00
/ * M a d e b y : N e c r o t i c P h a n t o m
2024-05-08 06:05:22 -04:00
With help from : voidapex11 * /
// For change log: "+" = addition, "-" = removal and "~" = change. L, R, U, D corresponds to LEFT, RIGHT, UP and DOWN
/ *
=== CHANGE LOG ===
2024-06-21 07:56:47 -04:00
Version : 1.0 . 0 ( Drills . js )
2024-05-08 06:05:22 -04:00
@ Necrotic _Phantom & @ voidapex11
+ steel drill L , R , U & D
+ steel drill missile L , R , U & D
+ diamond drill L , R , U & D
+ diamond drill missile L , R , U & D
+ void drill L , R , U & D
+ void drill missile L , R , U & D
+ drills . js info ( drills _info ) element to 'mods' category
~ fixed steel / diamond / void drill R & steel / diamond / void drill missile R crashing upon border collision
~ made steel / diamond / void drill missile L , R , U & D explode upon border contact
~ committed
2024-06-21 07:56:47 -04:00
Version : 1.0 . 1
@ NecroticPhantom
~ fixed steel / diamond / void drill L , R , U & D + steel / diamond / void drill missile L , R , U & D not breaking pixels with no listed hardness
2024-05-08 06:05:22 -04:00
* /
drills _mod _desc _Colour = "#000000"
steel _drill _Colour = "#71797e"
steel _drill _missile _Colour = [ "#71797e" , "#ff0000" ] ;
diamond _drill _Colour = "#03fcec"
diamond _drill _missile _Colour = [ "#03fcec" , "#ff0000" ] ;
void _drill _Colour = "#262626"
void _drill _missile _Colour = [ "#262626" , "#ff0000" ] ;
2024-06-21 07:56:47 -04:00
behaviors . SELFDELETE = [
"XX|XX|XX" ,
"XX|DL|XX" ,
"XX|XX|XX" ,
] ;
2024-05-08 06:05:22 -04:00
elements . drills _info = {
color : drills _mod _desc _Colour ,
name : "drills.js_info" ,
category : "Mods" ,
behavior : behaviors . SELFDELETE ,
maxSize : 1 ,
tool : function ( pixel ) { } ,
onSelect : function ( pixel ) {
let info1stMod = "The drills.js mod adds different kinds of drills to a new 'drills' category.\n\nMod made by: Necrotic_Phantom. \n With help from: voidapex11."
alert ( info1stMod )
return
} ,
} ;
steel _drill _function = function ( pixel , dif _x , dif _y ) {
dif _x = dif _x - pixel . x
dif _y = dif _y - pixel . y
if ( ! outOfBounds ( pixel . x + dif _x , pixel . y + dif _y ) ) {
pxl = pixelMap [ pixel . x + dif _x ] [ pixel . y + dif _y ]
if ( ! isEmpty ( pixel . x + dif _x , pixel . y + dif _y ) ) {
if ( elements [ pxl . element ] . hardness <= 0.8 ) {
delete pixelMap [ pixel . x + dif _x ] [ pixel . y + dif _y ] ;
}
2024-06-21 07:56:47 -04:00
else if ( elements [ pxl . element ] . hardness == undefined ) {
delete pixelMap [ pixel . x + dif _x ] [ pixel . y + dif _y ] ;
} ;
2024-05-08 06:05:22 -04:00
} ;
tryMove ( pixel , pixel . x + dif _x , pixel . y + dif _y ) ;
} ;
doDefaults ( pixel ) ;
}
elements . steel _drill _LEFT = {
color : steel _drill _Colour ,
tick : function ( pixel ) {
steel _drill _function ( pixel , pixel . x - 1 , pixel . y ) ;
} ,
category : "Drills" ,
breakInto : [ "metal_scrap" , "steel" , "iron" , "tin" ] ,
tempHigh : 10000 ,
stateHigh : [ "molten_steel" , "molten_iron" , "molten_tin" ] ,
density : 10000 ,
hardness : 0.8 ,
conduct : 1 ,
state : "solid" ,
}
elements . steel _drill _RIGHT = {
color : steel _drill _Colour ,
tick : function ( pixel ) {
steel _drill _function ( pixel , pixel . x + 1 , pixel . y ) ;
} ,
category : "Drills" ,
breakInto : [ "metal_scrap" , "steel" , "iron" , "tin" ] ,
tempHigh : 10000 ,
stateHigh : [ "molten_aluminum" , "molten_steel" , "molten_iron" , "molten_tin" ] ,
density : 10000 ,
hardness : 0.8 ,
conduct : 1 ,
state : "solid" ,
}
elements . steel _drill _UP = {
color : steel _drill _Colour ,
tick : function ( pixel ) {
steel _drill _function ( pixel , pixel . x , pixel . y - 1 ) ;
} ,
category : "Drills" ,
breakInto : [ "metal_scrap" , "steel" , "iron" , "tin" ] ,
tempHigh : 10000 ,
stateHigh : [ "molten_aluminum" , "molten_steel" , "molten_iron" , "molten_tin" ] ,
density : 10000 ,
hardness : 0.8 ,
conduct : 1 ,
state : "solid" ,
}
elements . steel _drill _DOWN = {
color : steel _drill _Colour ,
tick : function ( pixel ) {
steel _drill _function ( pixel , pixel . x , pixel . y + 1 ) ;
} ,
category : "Drills" ,
breakInto : [ "metal_scrap" , "steel" , "iron" , "tin" ] ,
tempHigh : 10000 ,
stateHigh : [ "molten_aluminum" , "molten_steel" , "molten_iron" , "molten_tin" ] ,
density : 10000 ,
hardness : 0.8 ,
conduct : 1 ,
state : "solid" ,
}
steel _drill _missile _function = function ( pixel , dif _x , dif _y ) {
dif _x = dif _x - pixel . x
dif _y = dif _y - pixel . y
if ( pixel . die <= 0 ) {
deletePixel ( pixel . x , pixel . y )
explodeAt ( pixel . x , pixel . y , 15 ) ;
return true
} ;
if ( ! outOfBounds ( pixel . x + dif _x , pixel . y + dif _y ) ) {
pxl = pixelMap [ pixel . x + dif _x ] [ pixel . y + dif _y ]
if ( ! isEmpty ( pixel . x + dif _x , pixel . y + dif _y ) ) {
pixel . primed = true
if ( elements [ pxl . element ] . hardness <= 0.8 ) {
delete pixelMap [ pixel . x + dif _x ] [ pixel . y + dif _y ] ;
}
2024-06-21 07:56:47 -04:00
else if ( elements [ pxl . element ] . hardness == undefined ) {
delete pixelMap [ pixel . x + dif _x ] [ pixel . y + dif _y ] ;
} ;
2024-05-08 06:05:22 -04:00
}
else if ( pixel . primed ) {
pixel . die --
return true
} ;
tryMove ( pixel , pixel . x + dif _x , pixel . y + dif _y ) ;
}
else if ( outOfBounds ( pixel . x + dif _x , pixel . y + dif _y ) ) {
deletePixel ( pixel . x , pixel . y )
explodeAt ( pixel . x , pixel . y , 15 ) ;
} ;
doDefaults ( pixel ) ;
}
elements . steel _drill _missile _LEFT = {
color : steel _drill _missile _Colour ,
properties : {
die : 5 ,
primed : false ,
} ,
tick : function ( pixel ) {
steel _drill _missile _function ( pixel , pixel . x - 1 , pixel . y ) ;
} ,
category : "Drills" ,
density : 10000 ,
hardness : 0.8 ,
conduct : 1 ,
state : "solid" ,
maxSize : 1 ,
}
elements . steel _drill _missile _RIGHT = {
color : steel _drill _missile _Colour ,
properties : {
die : 5 ,
primed : false ,
} ,
tick : function ( pixel ) {
steel _drill _missile _function ( pixel , pixel . x + 1 , pixel . y ) ;
} ,
category : "Drills" ,
density : 10000 ,
hardness : 0.8 ,
conduct : 1 ,
state : "solid" ,
maxSize : 1 ,
}
elements . steel _drill _missile _UP = {
color : steel _drill _missile _Colour ,
properties : {
die : 5 ,
primed : false ,
} ,
tick : function ( pixel ) {
steel _drill _missile _function ( pixel , pixel . x , pixel . y - 1 ) ;
} ,
category : "Drills" ,
density : 10000 ,
hardness : 0.8 ,
conduct : 1 ,
state : "solid" ,
maxSize : 1 ,
}
elements . steel _drill _missile _DOWN = {
color : steel _drill _missile _Colour ,
properties : {
die : 5 ,
primed : false ,
} ,
tick : function ( pixel ) {
steel _drill _missile _function ( pixel , pixel . x , pixel . y + 1 ) ;
} ,
category : "Drills" ,
density : 10000 ,
hardness : 0.8 ,
conduct : 1 ,
state : "solid" ,
maxSize : 1 ,
}
diamond _drill _function = function ( pixel , dif _x , dif _y ) {
dif _x = dif _x - pixel . x
dif _y = dif _y - pixel . y
if ( ! outOfBounds ( pixel . x + dif _x , pixel . y + dif _y ) ) {
pxl = pixelMap [ pixel . x + dif _x ] [ pixel . y + dif _y ]
if ( ! isEmpty ( pixel . x + dif _x , pixel . y + dif _y ) ) {
if ( elements [ pxl . element ] . hardness <= 0.99 ) {
delete pixelMap [ pixel . x + dif _x ] [ pixel . y + dif _y ] ;
}
2024-06-21 07:56:47 -04:00
else if ( elements [ pxl . element ] . hardness == undefined ) {
delete pixelMap [ pixel . x + dif _x ] [ pixel . y + dif _y ] ;
} ;
2024-05-08 06:05:22 -04:00
} ;
tryMove ( pixel , pixel . x + dif _x , pixel . y + dif _y ) ;
} ;
doDefaults ( pixel ) ;
}
elements . diamond _drill _LEFT = {
color : diamond _drill _Colour ,
tick : function ( pixel ) {
diamond _drill _function ( pixel , pixel . x - 1 , pixel . y ) ;
} ,
category : "Drills" ,
breakInto : [ "metal_scrap" , "diamond" , "iron" , "tin" ] ,
tempHigh : 10000 ,
stateHigh : [ "molten_aluminum" , "carbon_dioxide" , "molten_iron" , "molten_tin" ] ,
density : 10000 ,
hardness : 0.99 ,
conduct : 1 ,
state : "solid" ,
}
elements . diamond _drill _RIGHT = {
color : diamond _drill _Colour ,
tick : function ( pixel ) {
diamond _drill _function ( pixel , pixel . x + 1 , pixel . y ) ;
} ,
category : "Drills" ,
breakInto : [ "metal_scrap" , "diamond" , "iron" , "tin" ] ,
tempHigh : 10000 ,
stateHigh : [ "molten_aluminum" , "carbon_dioxide" , "molten_iron" , "molten_tin" ] ,
density : 10000 ,
hardness : 0.99 ,
conduct : 1 ,
state : "solid" ,
}
elements . diamond _drill _UP = {
color : diamond _drill _Colour ,
tick : function ( pixel ) {
diamond _drill _function ( pixel , pixel . x , pixel . y - 1 ) ;
} ,
category : "Drills" ,
breakInto : [ "metal_scrap" , "diamond" , "iron" , "tin" ] ,
tempHigh : 10000 ,
stateHigh : [ "molten_aluminum" , "carbon_dioxide" , "molten_iron" , "molten_tin" ] ,
density : 10000 ,
hardness : 0.99 ,
conduct : 1 ,
state : "solid" ,
}
elements . diamond _drill _DOWN = {
color : diamond _drill _Colour ,
tick : function ( pixel ) {
diamond _drill _function ( pixel , pixel . x , pixel . y + 1 ) ;
} ,
category : "Drills" ,
breakInto : [ "metal_scrap" , "diamond" , "iron" , "tin" ] ,
tempHigh : 10000 ,
stateHigh : [ "molten_aluminum" , "carbon_dioxide" , "molten_iron" , "molten_tin" ] ,
density : 10000 ,
hardness : 0.99 ,
conduct : 1 ,
state : "solid" ,
}
diamond _drill _missile _function = function ( pixel , dif _x , dif _y ) {
dif _x = dif _x - pixel . x
dif _y = dif _y - pixel . y
if ( pixel . die <= 0 ) {
deletePixel ( pixel . x , pixel . y )
explodeAt ( pixel . x , pixel . y , 15 ) ;
return true
} ;
if ( ! outOfBounds ( pixel . x + dif _x , pixel . y + dif _y ) ) {
pxl = pixelMap [ pixel . x + dif _x ] [ pixel . y + dif _y ]
if ( ! isEmpty ( pixel . x + dif _x , pixel . y + dif _y ) ) {
pixel . primed = true
if ( elements [ pxl . element ] . hardness <= 0.99 ) {
delete pixelMap [ pixel . x + dif _x ] [ pixel . y + dif _y ] ;
}
2024-06-21 07:56:47 -04:00
else if ( elements [ pxl . element ] . hardness == undefined ) {
delete pixelMap [ pixel . x + dif _x ] [ pixel . y + dif _y ] ;
} ;
2024-05-08 06:05:22 -04:00
}
else if ( pixel . primed ) {
pixel . die --
return true
} ;
tryMove ( pixel , pixel . x + dif _x , pixel . y + dif _y ) ;
}
else if ( outOfBounds ( pixel . x + dif _x , pixel . y + dif _y ) ) {
deletePixel ( pixel . x , pixel . y )
explodeAt ( pixel . x , pixel . y , 15 ) ;
} ;
doDefaults ( pixel ) ;
}
elements . diamond _drill _missile _LEFT = {
color : diamond _drill _missile _Colour ,
properties : {
die : 5 ,
primed : false ,
} ,
tick : function ( pixel ) {
diamond _drill _missile _function ( pixel , pixel . x - 1 , pixel . y ) ;
} ,
category : "Drills" ,
density : 10000 ,
hardness : 0.99 ,
conduct : 1 ,
state : "solid" ,
maxSize : 1 ,
}
elements . diamond _drill _missile _RIGHT = {
color : diamond _drill _missile _Colour ,
properties : {
die : 5 ,
primed : false ,
} ,
tick : function ( pixel ) {
diamond _drill _missile _function ( pixel , pixel . x + 1 , pixel . y ) ;
} ,
category : "Drills" ,
density : 10000 ,
hardness : 0.99 ,
conduct : 1 ,
state : "solid" ,
maxSize : 1 ,
}
elements . diamond _drill _missile _UP = {
color : diamond _drill _missile _Colour ,
properties : {
die : 5 ,
primed : false ,
} ,
tick : function ( pixel ) {
diamond _drill _missile _function ( pixel , pixel . x , pixel . y - 1 ) ;
} ,
category : "Drills" ,
density : 10000 ,
hardness : 0.99 ,
conduct : 1 ,
state : "solid" ,
maxSize : 1 ,
}
elements . diamond _drill _missile _DOWN = {
color : diamond _drill _missile _Colour ,
properties : {
die : 5 ,
primed : false ,
} ,
tick : function ( pixel ) {
diamond _drill _missile _function ( pixel , pixel . x , pixel . y + 1 ) ;
} ,
category : "Drills" ,
density : 10000 ,
hardness : 0.99 ,
conduct : 1 ,
state : "solid" ,
maxSize : 1 ,
}
void _drill _function = function ( pixel , dif _x , dif _y ) {
dif _x = dif _x - pixel . x
dif _y = dif _y - pixel . y
if ( ! outOfBounds ( pixel . x + dif _x , pixel . y + dif _y ) ) {
pxl = pixelMap [ pixel . x + dif _x ] [ pixel . y + dif _y ]
if ( ! isEmpty ( pixel . x + dif _x , pixel . y + dif _y ) ) {
if ( elements [ pxl . element ] . hardness <= 1 ) {
delete pixelMap [ pixel . x + dif _x ] [ pixel . y + dif _y ] ;
}
2024-06-21 07:56:47 -04:00
else if ( elements [ pxl . element ] . hardness == undefined ) {
delete pixelMap [ pixel . x + dif _x ] [ pixel . y + dif _y ] ;
} ;
2024-05-08 06:05:22 -04:00
} ;
tryMove ( pixel , pixel . x + dif _x , pixel . y + dif _y ) ;
} ;
doDefaults ( pixel ) ;
}
elements . void _drill _LEFT = {
color : void _drill _Colour ,
tick : function ( pixel ) {
void _drill _function ( pixel , pixel . x - 1 , pixel . y ) ;
} ,
category : "Drills" ,
breakInto : [ "metal_scrap" , "void" , "iron" , "tin" ] ,
tempHigh : 10000 ,
stateHigh : [ "molten_aluminum" , "void" , "molten_iron" , "molten_tin" ] ,
density : 10000 ,
hardness : 1 ,
conduct : 1 ,
state : "solid" ,
}
elements . void _drill _RIGHT = {
color : void _drill _Colour ,
tick : function ( pixel ) {
void _drill _function ( pixel , pixel . x + 1 , pixel . y ) ;
} ,
category : "Drills" ,
breakInto : [ "metal_scrap" , "void" , "iron" , "tin" ] ,
tempHigh : 10000 ,
stateHigh : [ "molten_aluminum" , "void" , "molten_iron" , "molten_tin" ] ,
density : 10000 ,
hardness : 1 ,
conduct : 1 ,
state : "solid" ,
}
elements . void _drill _UP = {
color : void _drill _Colour ,
tick : function ( pixel ) {
void _drill _function ( pixel , pixel . x , pixel . y - 1 ) ;
} ,
category : "Drills" ,
breakInto : [ "metal_scrap" , "void" , "iron" , "tin" ] ,
tempHigh : 10000 ,
stateHigh : [ "molten_aluminum" , "void" , "molten_iron" , "molten_tin" ] ,
density : 10000 ,
hardness : 1 ,
conduct : 1 ,
state : "solid" ,
}
elements . void _drill _DOWN = {
color : void _drill _Colour ,
tick : function ( pixel ) {
void _drill _function ( pixel , pixel . x , pixel . y + 1 ) ;
} ,
category : "Drills" ,
breakInto : [ "metal_scrap" , "void" , "iron" , "tin" ] ,
tempHigh : 10000 ,
stateHigh : [ "molten_aluminum" , "void" , "molten_iron" , "molten_tin" ] ,
density : 10000 ,
hardness : 1 ,
conduct : 1 ,
state : "solid" ,
}
void _drill _missile _function = function ( pixel , dif _x , dif _y ) {
dif _x = dif _x - pixel . x
dif _y = dif _y - pixel . y
if ( pixel . die <= 0 ) {
deletePixel ( pixel . x , pixel . y )
explodeAt ( pixel . x , pixel . y , 15 ) ;
return true
} ;
if ( ! outOfBounds ( pixel . x + dif _x , pixel . y + dif _y ) ) {
pxl = pixelMap [ pixel . x + dif _x ] [ pixel . y + dif _y ]
if ( ! isEmpty ( pixel . x + dif _x , pixel . y + dif _y ) ) {
pixel . primed = true
if ( elements [ pxl . element ] . hardness <= 1 ) {
delete pixelMap [ pixel . x + dif _x ] [ pixel . y + dif _y ] ;
}
2024-06-21 07:56:47 -04:00
else if ( elements [ pxl . element ] . hardness == undefined ) {
delete pixelMap [ pixel . x + dif _x ] [ pixel . y + dif _y ] ;
} ;
2024-05-08 06:05:22 -04:00
}
else if ( pixel . primed ) {
pixel . die --
return true
} ;
tryMove ( pixel , pixel . x + dif _x , pixel . y + dif _y ) ;
}
else if ( outOfBounds ( pixel . x + dif _x , pixel . y + dif _y ) ) {
deletePixel ( pixel . x , pixel . y )
explodeAt ( pixel . x , pixel . y , 15 ) ;
} ;
doDefaults ( pixel ) ;
}
elements . void _drill _missile _LEFT = {
color : void _drill _missile _Colour ,
properties : {
die : 5 ,
primed : false ,
} ,
tick : function ( pixel ) {
void _drill _missile _function ( pixel , pixel . x - 1 , pixel . y ) ;
} ,
category : "Drills" ,
density : 10000 ,
hardness : 1 ,
conduct : 1 ,
state : "solid" ,
maxSize : 1 ,
}
elements . void _drill _missile _RIGHT = {
color : void _drill _missile _Colour ,
properties : {
die : 5 ,
primed : false ,
} ,
tick : function ( pixel ) {
void _drill _missile _function ( pixel , pixel . x + 1 , pixel . y ) ;
} ,
category : "Drills" ,
density : 10000 ,
hardness : 1 ,
conduct : 1 ,
state : "solid" ,
maxSize : 1 ,
}
elements . void _drill _missile _UP = {
color : void _drill _missile _Colour ,
properties : {
die : 5 ,
primed : false ,
} ,
tick : function ( pixel ) {
void _drill _missile _function ( pixel , pixel . x , pixel . y - 1 ) ;
} ,
category : "Drills" ,
density : 10000 ,
hardness : 1 ,
conduct : 1 ,
state : "solid" ,
maxSize : 1 ,
}
elements . void _drill _missile _DOWN = {
color : void _drill _missile _Colour ,
properties : {
die : 5 ,
primed : false ,
} ,
tick : function ( pixel ) {
void _drill _missile _function ( pixel , pixel . x , pixel . y + 1 ) ;
} ,
category : "Drills" ,
density : 10000 ,
hardness : 1 ,
conduct : 1 ,
state : "solid" ,
maxSize : 1 ,
2024-06-21 07:56:47 -04:00
}