DarwinBotsManual
Abrir la app EnglishEN

Defensas

Caparazón, baba, veneno y toxina: cómo se fabrican con energía, cuánto cuestan, cuáles se gastan solas y qué le hacen a quien te ataca.

Un bot puede convertir energía en cuatro sustancias: caparazón (shell), baba (slime), veneno (venom) y toxina (poison). Las cuatro se fabrican igual, pero cada una sirve contra otra cosa. Esta página cuenta cómo funcionan; las sysvars que las manejan están en Defensas.

SustanciaSe fabrica conSe lee enPor 1 de energíaTope por cicloSe gasta solaSirve contra
Caparazón.mkshell.shell10100nodisparos de cuerpo (−6) y de veneno (−3)
Baba.mkslime.slime102002 % por ciclolazos y virus
Veneno.strvenom.venom1100noes munición: paraliza
Toxina.strpoison.poison41002 % por ciclodisparos de energía (−1), de memoria y robos por lazo

Fabricar

El ADN escribe cuánto quiere sumar en la orden de cada sustancia. El motor fabrica en la fase de acciones del mismo ciclo, antes de los disparos (así que el veneno fabricado ya se puede disparar en ese ciclo), y deja la orden en 0. Para seguir fabricando hay que volver a escribirla.

El precio tiene dos partes:

Este bot fabrica 100 de cada una en su primer ciclo:

' Cien de cada defensa al nacer
cond
 *.robage 0 =
start
 100 .mkshell store
 100 .mkslime store
 100 .strvenom store
 100 .strpoison store
stop

Sin costos de transacción le cuesta 145 de energía (10 + 10 + 100 + 25). Con los costos del preset F1 paga 22 más, y esos 22 aparecen en sus desechos.

Algunos detalles:

Lo que se gasta solo

La baba y la toxina pierden el 2 % por ciclo, al empezar la fase de fuerzas y choques. Una reserva que no se repone se reduce a la mitad en unos 35 ciclos. Si reponés lo mismo en cada ciclo, la reserva se estabiliza cerca de 50 veces esa cantidad: con 200 de baba por ciclo, cerca de 10000; con 100 de toxina, cerca de 5000.

El caparazón y el veneno no se gastan solos: quedan hasta que te los comen los disparos, los disparás o los desarmás.

Caparazón

El caparazón se interpone entre algunos disparos y el bot. Cada golpe se come primero el caparazón, y solo lo que sobra llega al bot.

No frena los disparos de energía (−1), los de memoria, los de desechos ni los virus. Para los dos primeros está la toxina.

El costo escondido es el peso: cada 200 de caparazón pesan lo mismo que 1000 de cuerpo (.mass), y un bot más pesado acelera menos con el mismo empuje (ver Física).

Baba

La baba no frena los disparos de energía, de cuerpo ni de veneno (ver Disparos). Sirve contra dos cosas:

Como se evapora, una capa de baba exige reponer todos los ciclos.

Veneno

El veneno es un arma: se dispara con -3 en .shoot. El disparo lleva lo que diga .shootval (sin signo y nunca más de lo que tengas) o, si vale 0, la vigésima parte de tu .venom. Además del veneno, cuesta el costo de disparar como los demás disparos.

Al pegar en un bot de otra especie:

  1. Su caparazón frena lo que pueda (ver arriba).
  2. El veneno que pasa se convierte en ciclos de parálisis: cada punto de veneno, un ciclo, que se suman a los que ya tuviera (hasta 32000).
  3. La víctima recibe tu par .vloc y .venval, tal como estaban cuando disparaste, y reemplaza al de un golpe anterior.

Mientras le queden ciclos de parálisis, el motor escribe en cada ciclo el .venval en la celda .vloc de la víctima. Lo hace al empezar la fase de fuerzas y choques, después de que corrió su ADN y antes de las acciones, así que la orden que le pongas se cumple ese mismo ciclo y su ADN no puede corregirla. Fuera de eso, el bot paralizado sigue funcionando: se mueve, dispara y ejecuta su ADN. La víctima ve los ciclos que le quedan en .paralyzed.

Si le pega a uno de tu especie, no lo paraliza: el veneno se suma a su reserva.

' Al nacer: mi veneno hace que la victima regale energia
cond
 *.robage 0 =
start
 .shoot .vloc store
 -2 .venval store
 100 .strvenom store
stop

' Busco algo para mirar
cond
 *.eye5 0 =
start
 40 .aimdx store
stop

' Le tiro 30 de veneno, una sola vez
cond
 *.eye5 0 >
 *.venom 30 >
 *50 0 =
start
 30 .shootval store
 -3 .shoot store
 1 50 store
stop

En la prueba, contra un bot quieto, el blanco quedó paralizado unos 30 ciclos. En cada uno disparó un regalo con el 1 % de su energía y terminó con 781 menos. Como el blanco no miraba al tirador, esos regalos se perdieron en el vacío.

El veneno también se puede inyectar por un lazo (ver Lazos y multicelulares).

Toxina

La toxina no se dispara: es una defensa pasiva que actúa cuando te muerden.

No frena los −6: para eso está el caparazón.

El disparo de toxina viaja como cualquier otro, con tu .ploc y tu .pval de ese momento. Al pegar en un bot de otra especie, le suma ciclos de envenenamiento: la fuerza del golpe dividida por 1,5 (hasta 32000). En la prueba, el mordisco de un bot de 1000 de cuerpo (220 de fuerza) le dejó 145 ciclos de envenenamiento. Mientras le duren, el motor escribe tu .pval en su celda .ploc en cada ciclo, en el mismo momento que la parálisis. El envenenado ve los ciclos que le quedan en .poisoned.

Si la toxina le pega a uno de tu especie, se suma a su reserva y no lo envenena. O sea que morder a un hermano tóxico tampoco da de comer, pero no envenena.

Un uso muy eficaz es apuntar .ploc a .shoot con .pval en 0: el envenenado tiene su orden de disparo borrada cada ciclo y no puede volver a morder.

' Quien me muerda deja de disparar: su .shoot queda en 0
cond
 *.robage 0 =
start
 .shoot .ploc store
 0 .pval store
stop

cond
 *.poison 1000 <
start
 100 .strpoison store
stop

En la prueba, un cazador que le disparaba −1 sin parar pasó 200 ciclos sin ganar nada de energía. Cada vez que se le acababa el envenenamiento volvía a morder, y la toxina lo frenaba otra vez.

Dónde escribe el veneno o la toxina

Las reglas de .vloc y .ploc son las mismas:

ValorCelda de la víctima
1 a 1000esa celda
mayor que 1000se toma módulo 1000, como una dirección (1050 es la 50)
0 o negativouna al azar en cada golpe
340 (.delgene)ninguna: está protegida

Son configuración: el motor no las borra, pero un recién nacido arranca con todo en 0. Por eso muchos bots las fijan con *.robage 0 =. Cada ciclo la cuenta de parálisis o de envenenamiento baja 1, y cuando se termina el motor deja de escribir. Un bot puede estar paralizado y envenenado a la vez, y entonces el motor le pisa dos celdas.

Un bot del Bestiario

Alga Toxicus usa veneno y toxina en tres genes. Al nacer apunta las dos celdas a .shoot y elige -2 para su veneno. Después dispara veneno en cada ciclo hacia un lado al azar y, cuando le sobra energía, se reproduce y repone las dos reservas:

cond
 *.robage 0 =
start
 .shoot .ploc store
 .shoot .vloc store
 -2 .venval store
stop

cond
start
 120 rnd .aimdx store
 -3 .shoot store
stop

cond
 *.nrg 1000 >
start
 50 .repro store
 100 .strpoison store
 100 .strvenom store
stop
end

Quien queda paralizado regala energía en cada ciclo, y quien la muerde se queda sin poder disparar, porque su .pval es 0. En una prueba contra un cazador que dispara −1 a todo lo que ve, el cazador quedó paralizado casi enseguida: como su .shoot recibía −2 en cada ciclo, nunca llegó a morder, y en 120 ciclos pasó de 3000 a 935 de energía.

Lo que tiene otro bot de cada sustancia se ve mirándolo, en .refshell, .refvenom y .refpoison (ver Lo que se ve (ref*)). Las estrategias que viven de estas defensas están en Defensivos.