mob/proc/halfcircle(var/turf/clicked, radius = 100)
. = list()
var/rad_sq = radius * radius
for(var/mob/m in front(get_dir(src,clicked)))
var/dist_sq = (m.px - px) * (m.px - px) + (m.py - py) * (m.py - py)
if(dist_sq < rad_sq)
. += m
I've also modified front to cover the blocks adjacent to their original coverage, and added diagonals.
Anyone mind helping me out with this?