In addition to the forthcoming change which modifies the distance an eye can see as a function of it's width, I've been thinking about how to do a better job w.r.t. being able to get refvar level info on multiple objects per cycle, both those in sight and those being "rememberred". Here's a couple ideas:
1) Changing .focuseye would instantly change all the refvars. Thus a bot could do things like:
-4 .focuseye store
*.myeye *.refeye !=
-140 .aimshoot store
-3 .focuseye store
*.myeye *.refeye !=
-105 .aimshoot store
-2 .focuseye store
*.myeye *.refeye !=
-70 .aimshoot store
.
.
.
and so on...
2) Add the sysvars .refid, .focusid and .focustype. .refid is a refvar that would return an ID of the object being viewed. If .reftype is 0, this is a bot. If .reftype is 1, a shape and so on. Setting .focusid and .focustype would change the refvars to reflect the properties of the object with that ID and type if it exists. With this, bots could do things like keep track of objects they've seen recently without needing to look at them. Conspecs could stay in formation with one another or know when and where a sibling died. Preditors could shoot at things they once glimpsed but are now beyond their vision range. An ant queen could read the .outNs of scout bots at distance... Lots of possibilities.