We have ARAY, BRAY and CRAY, why not add DRAY :P
Seriously though, what about an element that creates an exact replica of a given line of pixels, however you want it to?
The idea with this element is to make it easy for a newbie to use superficially, but also widely customisable and versatile.
Like CRAY, it is solid, indestructible (except for BOMB and DEST) and non-thermally conductive, and its behaviour is controlled by tmp, ctype, the conductor that sparks it and tmp2. Like ARAY, it can function in the standard 8 directions. tmp2 sets the scanning range of the particle (the length of the beam it will copy), and tmp sets the distance from the last particle (exclusive) that the DRAY copied. If tmp2=0 and ctype=0, the length of the beam is determined by the first empty space that the scanning beam encounters, but if ctype is nonzero the copy beam will only stop once it hits a particle of that type. tmp=0 causes the copy to appear directly at the end of the line.
In short, tmp2 tells the particle how many pixels to copy, and tmp tells the particle how many pixels away to put the copied line of pixels from the end of the copy zone. When tmp2 is zero, the particle defaults to its ctype to tell it where to stop copying (it stops copying when it finds a pixel of its ctype, without copying said pixel).
When tmp is greater than 0, the 'beam' can cross any particle except DMND and WALL.
Note that DRAY copies EVERYTHING– tmp, ctype, flags, even PAVG.
Normal mode
DRAY, sparked by a standard conductor, takes a copy of all of the particles in front of it until it reaches an empty pixel, then pastes this line on the end of the copied section. When pasting, does not overwrite existing particles, but will ignore them and paste the corresponding pixels in the empty spaces that exist between the existing particles.
PSCN mode
Same as above, but overwrites existing particles (that is, it'll clear the region in front of it and put whatever it copied in its place).
INST/INWR (swap) mode This probably won't be added
Rather than taking a copy of the particles directly opposite the side it is sparked on, this mode exchanges the two lines 45° from the adjacent line. For example:
[ ] B [ ] [ ]
[ ] A [ ] [ ]
[ ] D C ?
S [ ] [ ] [ ]
Where S = SPRK(INST) and D = DRAY, particles A and C would swap and particles B and ? would swap. That is, you'd get
[ ] ? [ ] [ ]
[ ] C [ ] [ ]
[ ] D A B
S [ ] [ ] [ ]
Uses
Same here.