Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - bacillus

Pages: 1 ... 3 4 [5] 6
61
Interesting behaviour bots / Whirlwind
« on: April 10, 2008, 01:12:44 AM »
This bot has gone far from what it was originally designed to do. It forms a protective coating of algae, in which it spirals around. When a bot becomes huge (Last gene), it breaks the shell and swarms out. Not a very good bot, but fun to watch.

'Whirlwind
'Circles around 5000,3000
'Hypnotises other bots with its virus
'Infected bots spin around 5000,3000 as well, but lock themselves
'down 1000 units from the centre, forming an algal shell
'shoot and tie-feeds
'virus replaces agressive shots with passive shots

'Conspec
cond
 *.out5 666 !=
start
 666 .out5 store
stop

'Virus
cond
 *.out5 666 !=
start
 *.shoot sgn abs -2 mult .shoot store
 *.thisgene .mkvirus store
 50 .vshoot store
 5000 3000 angle .setaim store
 .up inc
 1000 5000 *.xpos sub 3000 *.ypos sub pyth sub sgn floor .fixpos mult

inc
stop

'Updating
start
 10 *.vel sub .up store
 *.thisgene -- .mkvirus store
 50 .vshoot *.vtimer -- sgn abs -- abs mult store
 *.nrg 3 div *.body sub dup .strbody store - .fdbody store
 99 .sharenrg store
 1 .sharewaste store
 99 .shareshell store
 99 .shareslime store
 5000 3000 angle *.vel add .setaim store
stop

'Do not tie to non-veggies
cond
 *.trefshoot 0 !=
start
 *.tiepres .deltie store
stop

'Feeding
cond
 *.eye5 40 >
 *.in5 *.out5 !=
start
 64 .shootval store
 -6 .shoot store
 .tie inc
stop

'Reproduction
cond
 *.nrg 5000 >
start
 50 .repro store
stop

cond
 *.nrg 30000 >
start
 -180 .dx store
stop

62
Bug reports / Glitch in scoring system - OPEN
« on: April 08, 2008, 12:46:39 AM »
Sometimes when two bots are run together in a simulation, the contest drags on for a long time, even when one bot is the obvious winner. I had a fight that went on to 22-1 until finished, then Numsgil pointed out this is impossible with 5 rounds. It turns out the "number of rounds" label in the Restart and League bar resets back to 5, but with no effect.

63
Simulation Emporium / Fish Tank
« on: April 04, 2008, 05:52:37 PM »
I started making this sim that simulates an environment where the main source of food is a sardine. This is the code for the basic veggie:

'Sardine
' travels eastwards
cond
 *.out1 42 !=
start
 42 .out1 store
stop

cond
start
 *.maxvel .up store
 *.body 100 sub dup .fdbody store - .strbody store
stop

cond
 *.eye5 0 =
 *.eye3 0 =
 *.eye7 0 =
 *.refshoot 0 != or
start
 6 rnd 3 sub .dx store
 .setaim store
stop

cond
 *.eye3 *.eye5 >
start
 30 .aimsx store
stop

cond
 *.eye7 *.eye5 >
start
 30 .aimdx store
stop

cond
 *.nrg 1000 >
start
 50 .repro store
stop


The settings for the fish tank are:

Left/Right wrap only
200 max veggies, 50 repop. threshold, 10/repop event
100 nrg per kilobody
Size of sim 19140x13920

No Costs, Thin fluid resistance
Ideal movement efficiency, Animal brownian movement, moon gravity
180 max velocity, Collision Elasticity marbles

No mutations

Restart sim when all bots are dead

This simulation simulates fish, not bacteria, so no tie-bots or virus-bots please.

64
Single store / Dominis(SS)(bacillus)-30.03.08
« on: March 29, 2008, 09:38:33 PM »
After hours of furious experimentation, I got this to work without jamming up; for those who are also using Numsgil's template in Brevis, I should add that none of the conditions can overlap (I figured this out after a long time). Updated versions to come.

Code: [Select]
'Dominis
'My first single-store bot.
'primitive waste disposal
'feeding
'movement
'reproduction
'turning to avoid conspecs
cond
start
 -4
  *.waste 500 sub sgn 0 floor mult
 -6
 500 *.waste sub sgn 0 floor mult
 *.eye5 40 sub sgn 0 floor mult
 *.refeye *.myeye sub sgn abs mult
 2
 39 *.eye5 sub sgn 0 floor mult
 500 *.waste sub sgn 0 floor mult
 5000 *.nrg sub sgn 0 floor mult add
 50
 39 *.eye5 sub sgn 0 floor mult
 500 *.waste sub sgn 0 floor mult
 *.nrg 5000 sub sgn 0 floor mult add
 314 rnd
 500 *.waste sub sgn 0 floor mult
 *.refeye *.myeye sub sgn abs -- abs mult add

 .shoot
 *.eye5 40 sub sgn 0 floor mult
 *.refeye *.myeye sub sgn abs mult
 .up
 39 *.eye5 sub sgn 0 floor mult
 500 *.waste sub sgn 0 floor mult
 5000 *.nrg sub sgn 0 floor mult add
 .repro
 39 *.eye5 sub sgn 0 floor mult
 500 *.waste sub sgn 0 floor mult
 *.nrg 5000 sub sgn 0 floor mult add
 .aimsx
 500 *.waste sub sgn 0 floor mult
 *.refeye *.myeye sub sgn abs -- abs mult add
store
stop

65
F1 bots / Cornered Wolf(F1)(bacillus)-29.03.08
« on: March 28, 2008, 08:34:50 PM »
This bot uses almost everything I could think of to kill as savagely as possible:

Code: [Select]
'Update routine:
''suck nrg from tie
''make tie
''conspec and virus killcode
''body control
''waste dumping
''virus spreading

cond
start
 99 .sharenrg store
 -1 .tieloc store
 -1000 .tieval store
 .tie inc
 999 989 store
 999 .out1 store
 .out1 .tmemloc store
 10 *.numties 2 mult sub .up store
 *.nrg 3 div *.body sub dup .strbody store - .fdbody store
 1 .sharewaste store
 *.thisgene ++ .mkvirus store
 50 .vshoot *.nrg 100 sub 0 floor sgn mult store
stop

'virus

cond
 *989 999 !=
start
 *.thisgene .mkvirus store
 *.nrg 2 div .vshoot store
stop

'high-accuracy navigation

cond
 *.eye1 0 !=
 *.eye2 0 =
 *.eye3 0 =
 *.eye4 0 =
 *.eye5 0 =
 *.eye6 0 =
 *.eye7 0 =
 *.eye8 0 =
 *.eye9 0 =
start
 -4 .focuseye store
stop

cond
 *.eye2 0 =
 *.eye3 0 =
 *.eye4 0 =
 *.eye5 0 =
 *.eye6 0 =
 *.eye7 0 =
 *.eye8 0 =
 *.eye9 0 !=
start
 4 .focuseye store
stop

cond
 *.eye2 0 !=
 *.eye3 0 =
 *.eye4 0 =
 *.eye5 0 =
 *.eye6 0 =
 *.eye7 0 =
 *.eye8 0 =
start
 -3 .focuseye store
stop

cond
 *.eye3 0 =
 *.eye4 0 =
 *.eye5 0 =
 *.eye6 0 =
 *.eye7 0 =
 *.eye8 0 !=
start
 3 .focuseye store
stop

cond
 *.eye3 0 !=
 *.eye4 0 =
 *.eye5 0 =
 *.eye6 0 =
 *.eye7 0 =
start
 -2 .focuseye store
stop

cond
 *.eye4 0 =
 *.eye5 0 =
 *.eye6 0 =
 *.eye7 0 !=
start
 2 .focuseye store
stop

cond
 *.eye4 0 !=
 *.eye5 0 =
 *.eye6 0 =
start
 -1 .focuseye store
stop

cond
 *.eye5 0 =
 *.eye6 0 !=
start
 1 .focuseye store
stop

cond
 *.eye5 0 !=
start
 0 .focuseye store
stop

cond
 *.eyef 0 =
 *.shang 0 =
 *.refeye *.myeye = or
start
 314 rnd .aimsx store
stop

cond
 *.eyef 0 =
 *.refeye *.myeye = or
 *.shang 0 !=
start
 *.shang .setaim store
stop

'conspec tie-breaking

cond
 *.tmemval *.out1 =
start
 *.tiepres .deltie store
stop

'default feeding

cond
 *.in1 *.out1 !=
 *.eye5 40 >
start
 16 .shootval store
 -6 .shoot store
stop

'alternative feeding for bots that hide in shells

cond
 *.in1 *.out1 !=
 *.eye5 40 >
 *.refshell 0 >
 *.refpoison 0 =
start
 -1 .shoot store
stop

'eat closer food more quickly

cond
 *.eye5 60 >
start
 64 .shootval store
stop

'waste disposal

cond
 *.waste 100 >
start
 *.waste .shootval store
 -4 .shoot store
stop

'reproduction

cond
 *.nrg 5000 >
start
 50 .repro store
stop

66
DNA - General / The Quick guide to making a 1-gene bot
« on: March 28, 2008, 01:47:07 AM »
When I made my first 1-gene bot last year, it took me about two weeks to fully understand how they worked. So in case you might have those same problems, I have made a quick guide on how to make them, including an explanation.

Every command can be compressed into the basic formats:
CONDITION VALUE mult LOCATION store
or
VALUE LOCATION CONTIDION mult store

The Condition

The condition is a number, either 1(true) or 0(false). In the first format, the value is multiplied with this, so false returns 0 and true returns 1. Use this if you need to overwrite a certain memory location Easy enough?
The second one is more efficient; it multiplies the location instead of the value; so true stores in the correct memory location, false in memory location 0, where a store is useless, but free (whereas storing 0 in the desired location costs nrg).

Calculating the Condition from numbers A and B

 Negation

 A -- abs
 If A is 1(true), it turns into 0(false)
 If A is 0(false), it turns into -1, then 1(true)

  Equals

A B sub sgn abs -- abs

If A equals B, the sub command will return 0; otherwise, it will return something else. The sgn command turns this something else into 1 or -1, depending if it's negative or positive. The abs makes sure its 1 in either case. So:
A B != => 1
A B = 0
next, we negate the value:
A B != => 0
A B =  => 1
There you go!

 Comparing

 A B sub sgn 1 add sgn

A and B are subtracted and sgn value taken:
A < B  => -1
A = B  => 0
A > B  => 1

1 is added:

A < B  => 0
A = B  => 1
A > B  => 2

sgn value taken again

A < B  => 0
A = B  => 1
A > B  => 1
A >= B  => 1

To get A <= B, flip a and b in the formula. To get A > B, negate A <= B. To get A < B, negate A >= B.

Operators

AND

ConditionA conditionB mult
If both are 1, the result will be 1*1=1.

NOT

ConditionA conditionB mult -- abs
AND value negated.

OR
Calculating the Condition from numbers A and B

  Equals

A B sub sgn abs -- abs

If A equals B, the sub command will return 0; otherwise, it will return something else. The sgn command turns this something else into 1 or -1, depending if it's negative or positive. The abs makes sure its 1 in either case. So:
A B != => 1
A B = 0
next, we negate the value:
A B != => 0
A B =  => 1
There you go!

 Comparing

 A B sub sgn 1 add sgn

A and B are subtracted and sgn value taken:
A < B  => -1
A = B  => 0
A > B  => 1

1 is added:

A < B  => 0
A = B  => 1
A > B  => 2

sgn value taken again

A < B  => 0
A = B  => 1
A > B  => 1
A >= B  => 1

To get A <= B, flip a and b in the formula. To get A > B, negate A <= B. To get A < B, negate A >= B.

Operators

AND

ConditionA conditionB mult
If both are 1, the result will be 1*1=1.

OR

ConditionA conditionB add sgn
if both are 0, it will add to 0 and sgn will return 0. If one of them is 1, 1 will be returned, and if both are 1, 2 will be returned. Either way, sgn reduces it to 1.

XOR

ConditionA conditionB add -- abs -- abs
A=0, B=0 => 0 => -1 => 1 => 0
A=1, B=1 => 2 => 1  => 1 => 0
One is 1, other is 0 => 1 => 0 => 0 => -1 => 1

EDIT-Better comparators
Greater or equal
ConditionA conditionB sub sgn 0 floor ++ abs is the same as A B >=
ConditionA conditionB sub sgn - 0 floor ++ abs is the same as A B <=

I hope I have made this clear enough for you to get the basic idea.

67
F1 bots / Cocci Kaleido(F1)(bacillus)-27.3.08
« on: March 27, 2008, 01:25:48 AM »
Code: [Select]
'Cocci Kaleido
'A bot with a huge eye amount
'Could be F2 valid, not sure if defense counts
'If it doesn't work, try deleting the comments
'
'###################
'# STEERING SYSTEM #
'###################
'these nine genes each correspond to an eye,
'setting it as the focus eye if the more inner
'eyes are 0. To resolve clashes, the right side
'is favoured.

cond
 *.eye1 0 !=
 *.eye2 0 =
 *.eye3 0 =
 *.eye4 0 =
 *.eye5 0 =
 *.eye6 0 =
 *.eye7 0 =
 *.eye8 0 =
 *.eye9 0 =
start
 -4 .focuseye store
stop

cond
 *.eye2 0 =
 *.eye3 0 =
 *.eye4 0 =
 *.eye5 0 =
 *.eye6 0 =
 *.eye7 0 =
 *.eye8 0 =
 *.eye9 0 !=
start
 4 .focuseye store
stop

cond
 *.eye2 0 !=
 *.eye3 0 =
 *.eye4 0 =
 *.eye5 0 =
 *.eye6 0 =
 *.eye7 0 =
 *.eye8 0 =
start
 -3 .focuseye store
stop

cond
 *.eye3 0 =
 *.eye4 0 =
 *.eye5 0 =
 *.eye6 0 =
 *.eye7 0 =
 *.eye8 0 !=
start
 3 .focuseye store
stop

cond
 *.eye3 0 !=
 *.eye4 0 =
 *.eye5 0 =
 *.eye6 0 =
 *.eye7 0 =
start
 -2 .focuseye store
stop

cond
 *.eye4 0 =
 *.eye5 0 =
 *.eye6 0 =
 *.eye7 0 !=
start
 2 .focuseye store
stop

cond
 *.eye4 0 !=
 *.eye5 0 =
 *.eye6 0 =
start
 -1 .focuseye store
stop

cond
 *.eye5 0 =
 *.eye6 0 !=
start
 1 .focuseye store
stop

cond
 *.eye5 0 !=
start
 0 .focuseye store
stop

'If you are my species, or no-one's there,
'look around.
cond
 *.eyef 0 =
 *.refeye *.myeye = or
start
 314 rnd .aimsx store
stop

'You are not me, so I turn to face you.

cond
 *.eyef 0 !=
 *.refeye *.myeye !=
start
 *.refxpos *.refypos angle *.refvelsx add .setaim store
 3 .up store
stop

'####################
'# ANTIVIRUS SYSTEM #
'####################

cond
 *.mkvirus 0 !=
 *.nrg 100 >
start
 *.mkvirus .delgene store
 10 .mkslime store
stop

'################
'# BOT UPDATING #
'################

cond
start
 *.tiepres .deltie store
 *.nrg 3 div *.body sub dup .strbody store
 - .fdbody store
 .shoot store
stop

'###########
'# FEEDING #
'###########
'Eat normally

cond
 *.refeye *.myeye !=
 *.eye5 40 >
start
 *.nrg 10 div 4 floor 64 ceil .shootval store
 -6 .shoot store
 999 dec
stop

'You have shell, but no poison, so I'll switch
'my attack style.

cond
 *.refeye *.myeye !=
 *.eye5 40 >
 *.refpoison 0 =
 *.refshell 0 >
start
 -1 .shoot store
stop

'Waste disposal

cond
 *.waste 50 >
start
 *.waste .shootval store
 -4 .shoot store
stop

'##########
'# POISON #
'##########

cond
 *999 0 <=
 *.nrg 200 >
start
 10 .strvenom store
 .mkslime .vloc store
 32000 .venval store
 250 999 store
stop

cond
 *.refeye *.myeye !=
 *.refeye 0 !=
 *.eye5 40 >
 *.timer 0 <=
start
 *.venom .shootval store
 -3 .shoot store
stop

'################
'# REPRODUCTION #
'################

cond
 *.nrg 5000 >
start
 50 .repro store
stop

68
Bot Tavern / The F1 League lives again!
« on: March 26, 2008, 11:54:33 PM »
Hello to all!
I would like to take this little space up to formally announce that I have started up the F1 league again. There are 78 contestants, including every single bot in the F1 bestiary, and a few random ones which seemed F1-esque from the starting gate. In this forum, I hope to give a daily report on how the league is running.

To EricL, I apologize that I am dragging in an old corpse into the bar, and probably am putting this in the wrong forum, but I hope to make this worthwhile.  

69
Bot Tavern / Viruses that are part of vital code
« on: March 21, 2008, 11:18:05 PM »
Some bots use viruses as part of their code, for example Commander Keen's PV:

Code: [Select]
cond
start
*.thisgene .mkvirus store
.vshoot inc
300 .aimdx store
50 .repro store
0 .delgene store
1 .sharenrg store
.tie inc
stop
These viruses are efficient, as it covers a lot of vital functions, and the suicidal ones, like 50 .repro store, can be cancelled by a gene following it with 0 .repro store in it.

How do you stop bots like these infecting themselves after this inhibitor gene, cancelling it out, AND not destroy any vital genes in the process?

Edit => my first though was to the condition:

Code: [Select]
*42 0 =
and add this line to the gene:
Code: [Select]
42 inc
But that is fragile if the bot it infects stores over position 42.

70
Formula 1 / Occura Amplificis
« on: March 21, 2008, 01:12:18 AM »
A complete redesign of Lazy One to omit defensive features and try winning by strength in numbers. A lot of tweaking made it turn out like Commander Keen's Profero Victoria. The red code doesn't seem to do its job, I hope its function is obvious:

[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']
Code: [Select]
cond
start
 *.thisgene .mkvirus store
 150 .vshoot store
 1 .sharenrg store
 .tie inc
 25 *.nrg 500 sub sgn 1 add mult .repro store
 10 .up store
 600 rnd .aimsx store
 *.nrg 3 div *.body sub .strbody store
 *.body *.nrg 3  div sub .fdbody store
 [color=#FF0000]-32000 .shootval store
 .shootval .shoot store[/color]
 0 .delgene store
stop

cond
start
 99 .sharenrg store
 0 .shoot store
 0 .fixpos store
 111 .out3 store
 *.eye3 *.eye5 sub 0 floor *.eye7 *.eye5 sub 0 floor sub .aimsx store
stop

cond
 *.shang 0 !=
start
 *.shang .setaim store
 0 .aimsx store
stop
Able to beat Excalibur in under 1 minute most of the time.

EDIT => The red code does work, as Excalibur mushed it as soon as I removed it.

71
Untagged bots / Lazy One
« on: March 20, 2008, 03:47:52 AM »
Half of Lazy One's genes are in a virus; it doesn't do much except fire the virus, form ties and retaliate:

Code: [Select]
cond
start
 *.thisgene .mkvirus store
 150 .vshoot store
 1 .sharenrg store
 .tie inc
 50 .repro store
 20 .mkshell store
 20 .mkpoison store
 .shoot .ploc store
 3 .up store
stop

cond
start
 -1000 .
 0 .repro store
 99 .sharenrg store
 0 .shoot store
 0 .fixpos store
 111 .out3 store
 180 .shootval store
 *.nrg 3 div *.body sub .strbody store
 *.body *.nrg 3  div sub .fdbody store
 *.eye3 *.eye5 sub 0 floor *.eye7 *.eye5 sub 0 floor sub .aimdx store
stop

cond
 *.shflav 0 !=
 *.shflav -2 !=
start
 *.shang .setaim store
 .dn .shoot store
stop

cond
 *.nrg 5000 >
start
 50 .repro store
stop

eventually, veggies will take over the map; the first to die are anti-tie bots, as they cannot feed of the rampant veggies and do not get the tiefeeding bonus. Was able to beat Excalibur (after a looong time!)

72
Interesting behaviour bots / Toxica Occurus
« on: March 19, 2008, 01:18:59 AM »
One of my earlier bots; T. Occurus tries to swarm out the map and spread its -1 shot countering virus spread as fast as possible.
Code: [Select]
cond
 *.robage 0 =
start
 7 989 store
stop

cond
 *.vtimer 0 =
start
 3 .mkvirus store
stop

cond
 7 *989 !=
start
 *.thisgene 1 rnd 2 mult -1 add add .delgene store
 50 .shootval store
 7 .ploc store
 50 .mkpoison store
stop

cond
 *.eye5 0 >
 *.refeye *.myeye !=
start
 *.refveldx .dx store
 *.refvelup 30 add .up store
 50 .vshoot store
stop

cond
 *.eye5 50 >
 *.refeye *.myeye !=
start
 10 .mkvenom store
 *.myeye .venval store
 708 .vloc store
 10 .shootval store
 -3 .shoot store
stop

cond
 *.eye5 50 >
 *.refeye *.myeye !=
start
-6 .shoot store
 *.refvelup .up store
stop

cond
 *.eye5 0 =
 *.refeye *.myeye = or
start
 314 rnd .aimdx store
stop

cond
 *.nrg 2500 >
start
 50 .repro store
stop

cond
 *.waste 40 >
 *.eye5 50 <
start
 *.waste .shootval store
 -4 .shoot store
stop

cond
 *.numties 0 >
start
 *.prestie .deltie store
stop

end

73
Off Topic / Puzzles
« on: March 19, 2008, 12:46:43 AM »
A friend of mine made a series of puzzles on a calculator, each one giving a 4-digit number as a solution. I decided to post these here. When a person finds out the solution to the current puzzle, I will give the next puzzle, which will give you the solution to the third puzzle etc. Use the mapping of the buttons to help you:

-------------
|7M|8N|9O|
-------------
|4P|5Q|6R|
-------------
|1U|2V|3W|
-------------
|0Z|

Here's the first clue:

NORTH NORTH EAST WEST

Good Luck!

74
Bot Tavern / Fungus
« on: March 15, 2008, 07:16:22 PM »
Fungus is based on animal minimalis, as it wasn't designed to be a veggie at first but then behaved so much like one I decided to rewrite it:

Code: [Select]
cond
  *.eye3 *.eye5 >
start
  -25 .aimdx store
stop

cond
  *.eye7 *.eye5 >
start
  25 .aimdx store
stop

cond
start
  3 .up store
 *.refeye .tie store
 *.nrg 5 div *.body sub .strbody store
 *.body *.nrg 5 div sub  .fdbody store
 0 .fixpos store
 50 .sharenrg store
 *.out1 *.out2 angle .setaim *.out1 *.out2 mult mult store
 50 .repro store
stop

cond
 *.myeye *.refeye =
start
 *.in1 *.out1 store
 *.in2 *.out2 store
 *.maxvel .dn store
stop

cond
 *.eye5 0 >
 *.refeye *.myeye !=
start
 *.refxpos .out1 store
 *.refypos .out2 store
stop

cond
  *.eye5 40 >
  *.refeye *.myeye !=
start
  -1 .up store
  -6 .shoot store
stop

cond
  *.eye1 *.eye3 >
start
  -25 .aimdx store
stop
cond
  *.eye9 *.eye7 >
start
  25 .aimdx store
stop

cond
 *.trefeye *.myeye !=
start
 *.tiepres .deltie store
stop

cond
 *.numties 8 >=
start
 .fixpos inc
stop

end

The ideal simulation I found for it so far is with 1000 nrg per cycle, planet eaters on @ 320, low maximum speed, max collision elasticity and largest possible map. This way, their growth looks like on a petri-dish.

75
Untagged bots / Sentinel 2.1
« on: March 14, 2008, 11:29:27 PM »
Code: [Select]
cond
cond
start
 100 *.eye5 sub 50 div .up store
 408 .out3 store
 408 .out4 store
 *.nrg 5 div *.body sub .strbody store
 *.body *.nrg 5 div sub .fdbody store
 999 991 store
 1216 .eye5width store
 *.refxpos *.refypos angle *.vel add .setaim store
 *.tiepres .deltie store
stop

cond
 *.in4 *.out4 =
start
 *.maxvel .dn store
stop

cond
 *.eye5 40 >
 *.in4 *.out4 !=
start
 -6 .shoot store
stop

cond
 *.vtimer 0 =
start
 *.thisgene 1 add .mkvirus store
stop

cond
 *.reffixed 0 !=
start
 .fixpos inc
stop

cond
 *.reffixed 0 =
start
 0 .fixpos store
stop

cond
 *991 999 !=
start
 *.eye5 15 sub .shootval store
 408 .out3 store
 *.thisgene 1 rnd 2 mult 1 sub add .delgene store
 *.eye5 sgn .fixpos mult inc
 .up inc
 1216 .eye5width store
 *.refxpos *.refypos angle *.refvel add .setaim store
 *.in3 408 sub sgn abs -4 mult 2 sub .shoot store
 *.shoot *.eye5 25 sub sgn 1 add sgn mult .shoot store
 *.thisgene .mkvirus store
 *.nrg 50 div .vshoot store
 *.nrg 5 div *.body sub .strbody store
 .sharenrg .tieloc store
 1 .tieval store
stop

cond
 *.waste 50 >
start
 *.waste .shootval store
 -4 .shoot store
stop

cond
 *.nrg 5000 >
start
 50 .repro store
stop

cond
 *.vtimer 1 =
start
 *.nrg 10 div .vshoot store
stop
21/04/08 - Fixed bad conspec

Pages: 1 ... 3 4 [5] 6