I also want the cage to be destructible, I thought i could do this by setting up the outside wall as a 'wall' object, then overlap the entire area with a 'roof' object that will stop outsiders peering in.
I started doing this, and then decided there must be an easier way of doing it, here is where I got too:
usr.CoolDowns+=src.CD
var/x
var/y
switch(usr.dir)
if(NORTH)
for(x=-2,x<3, x++)
for(y=1,y<3,y++)
if(y!=2)
var/obj/Technique/Ultimate/Wall/K = new()
K.loc=locate(usr.x+x,usr.y+y,usr.z)
else
if(x==-2||x==3)
var/obj/Technique/Ultimate/Wall/K = new()
K.loc=locate(usr.x+x,usr.y+y,usr.z)
for(x=-1, x<2, x++)
for(y=-1, y<2, y++)
var/obj/Technique/Ultimate/Roof/D = new()
D.loc = locate(usr.x+x,usr.y+y,usr.z)