Difference between revisions of "Virus"

From WikiManual
Jump to: navigation, search
(DB Viruses)
(Overview)
 
(11 intermediate revisions by 5 users not shown)
Line 1: Line 1:
===Biological Facts===
+
Viruses are small shots that have long ranges and carry foreign DNA to inject into other cells.
  
A Virus is not really a living thing. They can not reproduce by themselves. They have no metabolism. They are made up by a protein shell and in there is the [[DNA]] or [[RNA]]. They infect a cell and force the cell to produce new viruses.
+
== Overview ==
  
===DB Viruses===
+
Like real viruses DB viruses are not able to reproduce by themselves, they must steal nrg from bots to duplicate themselves. Outside of the bot they exist as shots.  Whithin these cyan colored "shots" is the viral DNA. The shot flavor ([[.shflav]]) of a virus is -7.
  
In DB there are also viruses. They are made up of a single gene that can be shot out and infect the bot it hits. A virus could look like, for example:
+
Viruses are made up of a single gene (note: Numsgil is currently working to losen the constriction to simply a length of DNA) that can be shot out and infect any bot it hits. "Infected" means it is inserted randomly into the effected bot's genome.  A virus could look like, for example:
<pre>
 
cond
 
start
 
0 .repro store
 
*.thisgene .mkvirus store
 
50 .vshoot store
 
stop</pre>
 
  
 +
cond
 +
start
 +
0 .repro store
 +
*.thisgene .mkvirus store
 +
50 .vshoot store
 +
stop
  
.thisgene tells where in the genome the gene is, .mkvirus is where you store which gene that shall be shot, and .vshoot determines how far the virus will go, the more code put there, the more it costs and more time it takes to make. This virus, if after the reproduction gene, would cause the bot to be unable to reproduce; because the virus is storing a value of zero in the .repro memory location.
+
<nowiki>*.thisgene</nowiki> tells where in the genome the gene is, .mkvirus makes the gene stored into it into a virus, and .vshoot determines how far the virus will go.  The larger the value in .vshoot, the more costly the virus is to fire.  The larger the code being copied into the virus, the longer the copying takes. This time can be read from vtimer. The above viral code, if inserted after the reproduction gene, would basically sterilize the bot, making it unable to reproduce.
  
1.1 Virus Creation Guide
+
== Virus Creation Guide ==
  
 
To make a virus you should follow these steps.
 
To make a virus you should follow these steps.
* 1 Decide which of your own genes to copy into the virus or to have the viral gene replicate its own code use thisgene.
+
* 1 Decide which of your own genes to copy into the virus.  You can have a self-replicating virus by using the <nowiki>*.thisgene</nowiki> command.
  
* 2 Store this in the .mkvirus command. eg This will copy the virus's gene into a temporary storage array to create the virus.
+
* 2 Store this value into the .mkvirus command. eg: This will copy the virus's gene into a temporary storage array to create the virus.
 
 
*.thisgene .mkvirus store
 
  
* 3 It takes a finite amount of time to copy this gene into the virus so at the beginning of the process, the gene length is calculated and this value is placed into a count-down timer which can be accessed by the robot via .vtimer(vtimer is the length of DNA * 2). This is a read only value indicating how long you have to wait till the virus is ready. Vtimer is 1 when there is a virus ready to fire. 0 if there is no virus ready to fire, > 1 if there is still time left to wait.
+
* 3 It takes a finite amount of time to copy this gene into the virus so at the beginning of the process, the gene length is calculated and this value is placed into a count-down timer which can be accessed by the robot via .vtimer(vtimer is the length of the DNA being copied * 2). This is a read only value indicating how long you have to wait until the virus is ready. Vtimer is 1 when there is a virus ready to fire. 0 if there is no virus either ready or being constructed, > 1 if there is still time left to wait.
  
* 4 Once .vtimer reaches one, the virus is ready and it can be fired by placing any non-zero value into .vshoot. this will shoot the virus straight forward. As of last check both backshot and .aimshot work with viruses.
+
* 4 Once .vtimer reaches 1, the virus is ready and can be fired by placing any non-zero value into .vshoot. This will shoot the virus in a random direction.
  
 
* 5 The virus will appear as a cyan colored shot. It can most easily be distinguished by the normally longer distance it travels.
 
* 5 The virus will appear as a cyan colored shot. It can most easily be distinguished by the normally longer distance it travels.
 +
 +
Note: Normal shot color is determined by the color of a bot firing it. If a shot is cyan, but no cyan bots are on the screen chances are it is a virus.
 +
 +
Note: It's important to limit viral gene activation within your own species. For self-replicating viruses another gene fires the first viruses. Harmful viral genes can be easily prevented by setting a species specific deactivation condition. ie.
 +
 +
cond
 +
*.robage 0 =
 +
start
 +
52 inc
 +
stop
 +
 +
cond
 +
*52 1 !=
 +
start
 +
.repro inc
 +
stop
 +
 +
== Little Viruses ==
 +
 +
Here are a few of the smaller viruses that have been thought up.
 +
 +
'Small but with increasing numbers inside a cell will steal more and more nrg.
 +
cond
 +
start
 +
.vshoot inc
 +
*.thisgene .mkvirus store
 +
stop
 +
 +
== Other Viruses ==
 +
 +
Some more viruses.
 +
 +
This virus makes all the infected bots become zombielike conspecs:
 +
 +
cond
 +
start
 +
100 .vshoot store
 +
*.thisgene .mkvirus *.vtimer -1 mult 1 add mult store
 +
676 .myeye store
 +
676 *.memloc store
 +
*.mkvirus 1 add  .delgene *.mkvirus *.thisgene sub dup mult sgn mult store
 +
stop
 +
 +
This virus breaks up multibots:
 +
 +
cond
 +
start
 +
*.thisgene .mkvirus store
 +
250 .vshoot store
 +
*.tiepres .deltie store
 +
stop
 +
 +
This virus randomly deletes the infected bot's genes:
 +
 +
cond
 +
start
 +
*.thisgene 1 rnd 2 mult -1 add add .delgene store
 +
stop
 +
 +
== Slime ==
 +
 +
[[Slime]] is a much underused way of defending against viruses. Slime defends against viruses and ties but it dissolves away slowly. A few hundred units of slime is enough to block most viruses.
 +
 +
== Using Viruses for Gene Transfer ==
 +
 +
If your using viruses to transfer genes its important to limit which genes you allow to activate in other species. Instead of trying to prevent viral activation in your bots your trying to only allow the transfered genes to activate for your species. The easiest way to manage this is by setting some memory location to one and then multiplying your storage locations by that number.
 +
 +
cond
 +
*.robage 1 =
 +
start
 +
77 inc
 +
stop
 +
 +
cond
 +
*.refeye *.myeye !=
 +
*.eye5 45 >
 +
start
 +
-1 .shoot *77 mult store
 +
stop
 +
 +
Since it's highly unlikely another bot such as a veggie will store that exact same value into their sysvars, the gene is safe from exploitation. Some genes for things like reproduction are safe to allow, since they provide no tactical advantage to another species.
 +
 +
A further way to prevent dna misuse is to utilize the epigenetic locations. Since the original gene can be deleted there will be no way for any other species to ever gain the use of your dna.
 +
 +
{| width="100%" style="background: transparent;"
 +
{{Divpurple}}
 +
 +
==[[Virus]]es:==
 +
{| border="0" style=background:#f0f0ff;
 +
|-
 +
| [[.mkvirus]] || 335 || [[.thisgene]] || 341
 +
|-
 +
| [[.dnalen]] || 336
 +
|-
 +
| [[.vtimer]] || 337 || [[.vshoot]] || 338
 +
|-
 +
| [[.genes]] || 339
 +
|-
 +
| [[.delgene]] || 340
 +
|}
 +
|}

Latest revision as of 14:55, 8 April 2014

Viruses are small shots that have long ranges and carry foreign DNA to inject into other cells.

Overview

Like real viruses DB viruses are not able to reproduce by themselves, they must steal nrg from bots to duplicate themselves. Outside of the bot they exist as shots. Whithin these cyan colored "shots" is the viral DNA. The shot flavor (.shflav) of a virus is -7.

Viruses are made up of a single gene (note: Numsgil is currently working to losen the constriction to simply a length of DNA) that can be shot out and infect any bot it hits. "Infected" means it is inserted randomly into the effected bot's genome. A virus could look like, for example:

cond
start
0 .repro store
*.thisgene .mkvirus store
50 .vshoot store
stop

*.thisgene tells where in the genome the gene is, .mkvirus makes the gene stored into it into a virus, and .vshoot determines how far the virus will go. The larger the value in .vshoot, the more costly the virus is to fire. The larger the code being copied into the virus, the longer the copying takes. This time can be read from vtimer. The above viral code, if inserted after the reproduction gene, would basically sterilize the bot, making it unable to reproduce.

Virus Creation Guide

To make a virus you should follow these steps.

  • 1 Decide which of your own genes to copy into the virus. You can have a self-replicating virus by using the *.thisgene command.
  • 2 Store this value into the .mkvirus command. eg: This will copy the virus's gene into a temporary storage array to create the virus.
  • 3 It takes a finite amount of time to copy this gene into the virus so at the beginning of the process, the gene length is calculated and this value is placed into a count-down timer which can be accessed by the robot via .vtimer(vtimer is the length of the DNA being copied * 2). This is a read only value indicating how long you have to wait until the virus is ready. Vtimer is 1 when there is a virus ready to fire. 0 if there is no virus either ready or being constructed, > 1 if there is still time left to wait.
  • 4 Once .vtimer reaches 1, the virus is ready and can be fired by placing any non-zero value into .vshoot. This will shoot the virus in a random direction.
  • 5 The virus will appear as a cyan colored shot. It can most easily be distinguished by the normally longer distance it travels.

Note: Normal shot color is determined by the color of a bot firing it. If a shot is cyan, but no cyan bots are on the screen chances are it is a virus.

Note: It's important to limit viral gene activation within your own species. For self-replicating viruses another gene fires the first viruses. Harmful viral genes can be easily prevented by setting a species specific deactivation condition. ie.

cond
*.robage 0 =
start
52 inc
stop

cond
*52 1 !=
start
.repro inc
stop

Little Viruses

Here are a few of the smaller viruses that have been thought up.

'Small but with increasing numbers inside a cell will steal more and more nrg.
cond
start
.vshoot inc
*.thisgene .mkvirus store
stop

Other Viruses

Some more viruses.

This virus makes all the infected bots become zombielike conspecs:

cond
start
100 .vshoot store
*.thisgene .mkvirus *.vtimer -1 mult 1 add mult store
676 .myeye store
676 *.memloc store
*.mkvirus 1 add  .delgene *.mkvirus *.thisgene sub dup mult sgn mult store
stop

This virus breaks up multibots:

cond
start
*.thisgene .mkvirus store
250 .vshoot store
*.tiepres .deltie store
stop

This virus randomly deletes the infected bot's genes:

cond
start
*.thisgene 1 rnd 2 mult -1 add add .delgene store
stop

Slime

Slime is a much underused way of defending against viruses. Slime defends against viruses and ties but it dissolves away slowly. A few hundred units of slime is enough to block most viruses.

Using Viruses for Gene Transfer

If your using viruses to transfer genes its important to limit which genes you allow to activate in other species. Instead of trying to prevent viral activation in your bots your trying to only allow the transfered genes to activate for your species. The easiest way to manage this is by setting some memory location to one and then multiplying your storage locations by that number.

cond
*.robage 1 =
start
77 inc
stop

cond
*.refeye *.myeye !=
*.eye5 45 >
start
-1 .shoot *77 mult store
stop

Since it's highly unlikely another bot such as a veggie will store that exact same value into their sysvars, the gene is safe from exploitation. Some genes for things like reproduction are safe to allow, since they provide no tactical advantage to another species.

A further way to prevent dna misuse is to utilize the epigenetic locations. Since the original gene can be deleted there will be no way for any other species to ever gain the use of your dna.

Viruses:

.mkvirus 335 .thisgene 341
.dnalen 336
.vtimer 337 .vshoot 338
.genes 339
.delgene 340