ID:472231
 
Keywords: invisibility, range
(See the best response by Audeuro.)
Code:
mob/verb/find_obj()
for(var/obj/invis/o in range(5, usr))
world << o

obj/invis/invisibility = 101


Problem description:
So, apparently objects with 101 invisibility are exempt from the range() proc. I would expect this behaviour from view and oview, but I expected range to ignore all visibility (luminosity, opacity, invisibility). It performs as expected if the obj's invisibility is set to 100, but not at 101.

Is this a bug, or some behaviour I don't really understand?

Best response
I feel like this should be a bug, but it really needs some more clarification from Tom or Lummox. There's conflicting reference entries on the matter:

invisibility (atom):
A value of 101 is absolutely invisible, no matter what, and it is filtered from all lists of possible values for verb arguments. This is intended for objects that exist purely for some internal purpose, such as "verb containers".

orange():
This instruction is identical to oview() except visibility is ignored. All objects are included in the list whether they are visible or not. The center object and its contents are excluded.
You could try another BYOND version to see if the bug is still there and then fill a bug report.
I'm sure it's just obscurity in the reference that Tom or Lummox could hopefully clear up for us here before changing the wording around in the reference for the next DM update.