Lo que se ve (ref*)
Las sysvars ref* describen lo que tiene delante el ojo con foco: la firma de su ADN, su energía y su cuerpo, dónde está y cómo se mueve.
| Dirección | Sysvar | Tipo | Resumen |
|---|---|---|---|
| 477 | .reffixed | Sentido | Vale 1 si lo que estás viendo no se puede mover: un bot anclado con .fixpos o una forma quieta. |
| 685 | .reftype | Sentido | Qué es lo que estás viendo: 0 si es un bot y 1 si es una forma (un obstáculo del escenario). |
| 686 | .refmulti | Sentido | Vale 1 si el bot que estás viendo es parte de un multibot, un organismo de varias células unidas por lazos. |
| 687 | .refshell | Sentido | Cuánto caparazón tiene el bot que estás viendo: el caparazón frena los disparos de veneno y de body. |
| 688 | .refbody | Sentido | El body del bot que estás viendo, de 0 a 32000: su tamaño, y lo que le podés sacar con un disparo de body. |
| 689 | .refxpos | Sentido | La coordenada x de lo que estás viendo: junto con .refypos y el operador angle, sirve para apuntarle justo. |
| 690 | .refypos | Sentido | La coordenada y de lo que estás viendo: junto con .refxpos y el operador angle, sirve para apuntarle justo. |
| 695 | .refvelscalar | Sentido | Qué tan rápido se mueve lo que estás viendo respecto de vos, sin importar la dirección. |
| 696 | .refvelsx | Sentido | Con qué velocidad se desplaza hacia tu izquierda lo que estás viendo: es .refveldx con el signo cambiado. |
| 697 | .refveldx | Sentido | Con qué velocidad se desplaza de costado lo que estás viendo: positiva hacia tu derecha, negativa hacia tu izquierda. |
| 698 | .refveldn | Sentido | La velocidad con que se te acerca lo que estás viendo: es .refvel con el signo cambiado. |
| 699 | .refvel .refvelup | Sentido | Con qué velocidad se aleja (positivo) o se acerca (negativo) lo que estás viendo, en la dirección en que mirás y relativa a la tuya. |
| 701 | .refup | Sentido | Cuántas veces escribe en .up el ADN del bot que estás viendo: una de las cifras de su firma, para reconocer especies. |
| 702 | .refdn | Sentido | Cuántas veces escribe en .dn el ADN del bot que estás viendo: una cifra de su firma de especie. |
| 703 | .refsx | Sentido | Cuántas veces escribe en .sx el ADN del bot que estás viendo: una cifra de su firma de especie. |
| 704 | .refdx | Sentido | Cuántas veces escribe en .dx el ADN del bot que estás viendo: una cifra de su firma de especie. |
| 705 | .refaimdx | Sentido | Cuántas veces escribe en .aimdx el ADN del bot que estás viendo: una cifra de su firma de especie. |
| 706 | .refaimsx | Sentido | Cuántas veces escribe en .aimsx el ADN del bot que estás viendo: una cifra de su firma de especie. |
| 707 | .refshoot | Sentido | Cuántas veces escribe en .shoot el ADN del bot que estás viendo: si es mayor que 0, sabe disparar. |
| 708 | .refeye | Sentido | Cuántas veces lee sus ojos el ADN del bot que estás viendo: la cifra de la firma más usada para reconocer a la propia especie. |
| 709 | .refnrg | Sentido | La energía del bot que estás viendo, de 0 a 32000: para elegir presas que valgan la pena o parejas bien alimentadas. |
| 710 | .refage | Sentido | La edad en ciclos del bot que estás viendo, hasta 32000: para reconocer recién nacidos. |
| 711 | .refaim | Sentido | Hacia dónde apunta el bot que estás viendo, en la misma escala que .aim: para saber si te está mirando. |
| 712 | .reftie | Sentido | Cuántas veces aparece .tie en el ADN del bot que estás viendo: si es mayor que 0, sabe tirar lazos. |
| 713 | .refpoison | Sentido | Cuánto veneno de defensa (poison) tiene guardado el bot que estás viendo: dispararle puede devolverte veneno. |
| 714 | .refvenom | Sentido | Cuánto veneno de ataque (venom) tiene guardado el bot que estás viendo: con eso puede paralizarte. |
| 715 | .refkills | Sentido | Cuántos bots mató el bot que estás viendo: una forma de reconocer a un depredador. |
Los ojos (.eye5 y sus vecinos) solo dicen qué tan cerca hay algo. Para saber qué es, están las sysvars ref*: cada ciclo el motor copia en ellas datos del objeto que ve el ojo con foco, que es .eye5 salvo que lo cambies con .focuseye. Si ese ojo ve varias cosas, manda la más cercana.
Se agrupan en tres familias:
- La firma del ADN.
.refup,.refdn,.refsx,.refdx,.refaimdx,.refaimsx,.refshoot,.refeyey.reftiecuentan cuántas veces aparecen ciertas palabras en el ADN del otro. Los bots de una misma especie tienen la misma firma, así que comparándola con la tuya (las my*) sabés si es de los tuyos. - El estado.
.refnrg,.refbody,.refshell,.refage,.refkills,.refpoison,.refvenom,.refmultiy.reffixed. - Posición y movimiento.
.refxpos,.refypos,.refaim,.refvel,.refveldx, sus opuestos.refveldny.refvelsx, y.refvelscalar..reftypedice si lo que ves es un bot o una forma.
Las reglas son las mismas para todas. Llegan con un ciclo de atraso, como cualquier sentido. Se borran a 0 antes de reescribirse, así que si el ojo con foco no ve nada valen todas 0. Y también se llenan cuando chocás con otro bot, aunque no lo estés mirando.
La combinación más usada viene de Animal Minimalis, de Numsgil, en el Bestiario: si lo que ve no es de su especie, copia su movimiento para no perderlo y le dispara. Acá va condensada en un solo gen:
cond
*.eye5 0 >
*.refeye *.myeye !=
start
*.refveldx .dx store
*.refvel 30 add .up store
-1 .shoot store
stopLa visión completa está en Visión y el reconocimiento paso a paso, en Un bot que reconoce a su especie.