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.
| Sustancia | Se fabrica con | Se lee en | Por 1 de energía | Tope por ciclo | Se gasta sola | Sirve contra |
|---|---|---|---|---|---|---|
| Caparazón | .mkshell | .shell | 10 | 100 | no | disparos de cuerpo (−6) y de veneno (−3) |
| Baba | .mkslime | .slime | 10 | 200 | 2 % por ciclo | lazos y virus |
| Veneno | .strvenom | .venom | 1 | 100 | no | es munición: paraliza |
| Toxina | .strpoison | .poison | 4 | 100 | 2 % por ciclo | disparos 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:
- La conversión, fija: 1 de energía por cada 10 de caparazón o de baba, por cada 1 de veneno o por cada 4 de toxina.
- Un costo de transacción, que pone el escenario por unidad fabricada (Caparazón, Baba, Veneno y Toxina, multiplicados por el Multiplicador de costos). Esa energía no se pierde: se convierte en desechos (
.waste).
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
stopSin 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:
- Si pedís más de lo que tu energía puede pagar, el motor fabrica lo que alcance. Con la energía en 0 o menos, la orden no se cumple y queda escrita.
- Un número negativo desarma la sustancia, pero no devuelve energía: también se cobra.
- En un organismo de varios bots atados (
.multi), la transacción del caparazón y la baba se divide por la cantidad de lazos más uno. El veneno y la toxina no tienen descuento. - Dentro de un organismo, el caparazón y la baba se pueden repartir por los lazos, y el veneno se puede inyectar por un lazo (ver Lazos y multicelulares).
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.
- Contra el robo de cuerpo (−6). Cada punto de caparazón frena 20 de fuerza. Un −6 de un tirador de 1000 de cuerpo pega con 510, así que se come 25,5 de caparazón: 100 de caparazón, que cuestan 10 de energía, aguantan casi cuatro de esos disparos sin que el bot pierda nada.
- Contra el veneno (−3). Rinde menos: cada punto de caparazón frena 0,8 de veneno. En la prueba, un disparo con 30 de veneno bajó el caparazón de 100 a 62 y no paralizó.
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:
- Lazos. Cuando otro bot intenta atarte, el motor sortea un número entre 2 y 92; si tu baba es mayor, el lazo no se forma. Con más de 92 nadie te ata. Cada intento, salga o no, te come 20 de baba. Ver Lazos y multicelulares.
- Virus. Un disparo de virus tiene que atravesar la baba primero, y se gasta en el intento. Ver Virus.
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:
- Su caparazón frena lo que pueda (ver arriba).
- 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).
- La víctima recibe tu par
.vlocy.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
stopEn 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.
- Contra un −1. Si tu toxina supera la fuerza del golpe, no perdés energía. En lugar del regalo de vuelta, sale hacia el atacante un disparo de toxina con esa misma fuerza, y tu toxina baja el 90 % de esa fuerza.
- Contra un disparo de memoria. Si tu toxina llega a la mitad de la energía del disparo, no se escribe nada y también sale toxina hacia el tirador.
- Contra un robo por lazo. Si te chupan energía o cuerpo por un lazo, pasa algo parecido (ver Lazos y multicelulares).
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
stopEn 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:
| Valor | Celda de la víctima |
|---|---|
| 1 a 1000 | esa celda |
| mayor que 1000 | se toma módulo 1000, como una dirección (1050 es la 50) |
| 0 o negativo | una 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
endQuien 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.