DarwinBotsManual
Abrir la app EnglishEN

.shoot

La orden de disparar: el número elige el tipo de disparo (−1 roba energía, −2 la regala, −3 veneno, −6 roba body, positivo escribe en la memoria del otro).

Datos

Dirección
7
Nombre
.shoot
Tipo
Comando: el bot la escribe y el motor la lee y, en general, la consume
Grupo
Disparos
Quién la escribe
Tu ADN.
Quién la lee
El motor, en la fase de acciones del mismo ciclo: si no es 0 y te queda energía, dispara.
Cuándo se borra
El motor, siempre, en la fase de acciones, haya salido el tiro o no.
Rango
−32000 a 32000. Disparan −1, −2, −3, −4, −6, −8 y los positivos, de memoria, módulo 1000 (un múltiplo exacto de 1000 da esperma). Los demás negativos no hacen nada.
Mutaciones
la eligen como destino de un store

Escribir un número distinto de 0 en .shoot dispara, en este mismo ciclo, un proyectil que sale de tu frente en la dirección de .aim. Después el motor la vuelve a 0 siempre, haya salido el tiro o no: para disparar cada ciclo hay que escribirla cada ciclo.

El número elige el tipo:

ValorDisparoQué hace al pegar
−1de energíale saca energía al otro, que vuelve hacia vos
−2regalo de energíale da energía tuya al otro
−3de veneno (venom)lo paraliza; gasta tu .venom
−4de desechosle pasa tus desechos (.waste)
−6de bodyle saca body (y algo de energía), que vuelve hacia vos como energía
−8de espermalo fecunda con tu ADN (ver Reproducción)
positivode memoriaescribe tu .shootval en esa dirección de su memoria

Un disparo de memoria usa el número módulo 1000: 1050 .shoot store escribe en la dirección 50. La 340 (.delgene) está protegida. Y un múltiplo exacto de 1000 da 0, que el motor convierte en un disparo de esperma. Los negativos que no están en la tabla, como −5, −7 o −9, no disparan nada. Si tu energía está en 0, tampoco sale nada.

El tiro sale con una pequeña desviación al azar, viaja a 40 unidades por ciclo más tu propia velocidad y su alcance crece con tu body: con 1000 de body dura unos 11 ciclos. Cuesta energía según la configuración de la simulación. Nunca te pega a vos mismo, pero sí a cualquier otro, incluida tu especie (ver Errores frecuentes).

cond
*.eye5 0 =
start
40 .aimdx store
stop

cond
*.eye5 0 >
start
-1 .shoot store
stop

En una prueba con un bot quieto a la vista, este bot lo encontró en 6 ciclos; dos ciclos después el blanco había perdido 198 de energía y el tirador había ganado 209. .shootval, .backshot y .aimshoot modifican el disparo; qué hace cada tipo en detalle está en Disparos.