Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- atom/proc/InCone(atom/center = usr, dir = NORTH)//returns a list of enemies within a coned space.
- var/d = get_dir(center, src)
- if(!d || d == dir) return 1
- if(dir & (dir-1))
- return (d & ~dir) ? 0 : 1
- if(!(d & dir)) return 0
- var/dx = abs(x - center.x)
- var/dy = abs(y - center.y)
- if(dx == dy) return 1
- if(dy > dx)
- return (dir & (NORTH|SOUTH)) ? 1 : 0
- return (dir & (EAST|WEST)) ? 1 : 0
- proc/cone(atom/center = usr, dir = NORTH, list/list = view(center))
- for(var/atom/O in list) if(!O.InCone(center, dir)) list -= O
- return list
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement