Darwinbots Forum
Bots and Simulations => Bot Tavern => Topic started by: jknilinux on December 10, 2009, 02:38:55 PM
-
Hey everyone, here's a cool idea...
Lets make a "wikibot" so that everyone can add their own code to this community bot, similar to how wikipedia works!
Just add as little or as much code as you want, and post your resulting bot as a reply. Let's start with A. Minimalis:
'Wikibot, based on A. Minimalis
'Contains everything necessary for it to survive and reproduce.
cond
*.eye5 0 >
*.refeye *.myeye !=
start
*.refveldx .dx store
*.refvelup 30 add .up store
stop
cond
*.eye5 50 >
*.refeye *.myeye !=
start
-1 .shoot store
*.refvelup .up store
stop
cond
*.eye5 0 =
*.refeye *.myeye = or
start
314 rnd .aimdx store
stop
cond
*.nrg 20000 >
start
10 .repro store
stop
end
Sound fun?
BTW Numsgil, may I make a wiki entry on this?
-
Already been done actually. Sort of. Nothing much came of it but there you go. Clicky (http://www.darwinbots.com/WikiManual/index.php?title=Ideas).
You don't need permission to mess around on the wiki. If things get out of hand someone else will come in and make things better. So be bold.
-
Darn. oh well.
-
The problem is that while open collaboration sounds like a good idea, you need someone taking ownership for anything to get done. And bots can easily become complex enough that only the author can actually make heads or tails of the bot code. So they don't match the idea of wiki collaboration very well.
-
Could turn it into a bot challenge...
Everyone could get a memmory range to be responsible for, and noone would be allowed to talk.
Edit :
Or even worse... you could build it like a one word story forum thing, just with one line of code. So it would be a 1G bot with no gene condition, and everyone just adds one line at the time. You make a condition and the next person needs to guess what it's for...
-
Or even worse... you could build it like a one word story forum thing, just with one line of code. So it would be a 1G bot with no gene condition, and everyone just adds one line at the time. You make a condition and the next person needs to guess what it's for...
Ah, that would be crazy
I'll start:
*.body 200 <
-
Or even worse... you could build it like a one word story forum thing, just with one line of code. So it would be a 1G bot with no gene condition, and everyone just adds one line at the time. You make a condition and the next person needs to guess what it's for...
Ah, that would be crazy
I'll start:
*.body 200 <
*.body 200 <
*.nrg 200 > and
btw, that checks to see if body < 200 AND nrg > 200, right?
-
Yes, that's right.
-
K, your turn
-
*.body 200 <
*.nrg 200 > and
20 .dn store
I'll hold off on posting any more. I want to see if we can drum up some interest in this beyond just us two (and maybe Moonfisher).
-
[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
-
[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-
[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
Abyaly's line turns the bot around 180 and focuses on eye5, right? And moonfisher's makes the next shot fired by the bot have to be from behind?
...So eye5 and shot direction are pointing the same way now?
Also, having high nrg and low body doesn't indicate that anyone is attacking you. But was that the point of the DNA so far?
Just a bit confused...
-
Abyaly's line turns the current focus eye to point straight backwards.
And backshot makes sure the next shot comes from behind yes.
Other than that, I think it's more fun if we don't discuss what the purpose or goal is
-
OK, That was the last question.
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
-
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
-
[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
-
[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-
[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
-
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
-
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
-
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
EDIT : Woho! Blue stars!
-
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
-
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
.repro inc
-
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
.repro inc
swapbool
-
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
.repro inc
swapbool
*.numties 0 = and
-
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
.repro inc
swapbool
*.numties 0 = and
*.eye5 70 > and
-
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
.repro inc
swapbool
*.numties 0 = and
*.eye5 70 > and
.tie inc
-
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
.repro inc
swapbool
*.numties 0 = and
*.eye5 70 > and
.tie inc
swapbool
-
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
.repro inc
swapbool
*.numties 0 = and
*.eye5 70 > and
.tie inc
swapbool
not
-
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
.repro inc
swapbool
*.numties 0 = and
*.eye5 70 > and
.tie inc
swapbool
not
10 .up store
-
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
.repro inc
swapbool
*.numties 0 = and
*.eye5 70 > and
.tie inc
swapbool
not
10 .up store
or
-
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
.repro inc
swapbool
*.numties 0 = and
*.eye5 70 > and
.tie inc
swapbool
not
10 .up store
or
*.refxpos *.refypos angle *.aim sub 35 *.focuseye mult add .eye5dir *.focuseye add store
-
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
.repro inc
swapbool
*.numties 0 = and
*.eye5 70 > and
.tie inc
swapbool
not
10 .up store
or
*.refxpos *.refypos angle *.aim sub 35 *.focuseye mult add .eye5dir *.focuseye add store
-1 .shoot store
-
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
.repro inc
swapbool
*.numties 0 = and
*.eye5 70 > and
.tie inc
swapbool
not
10 .up store
or
*.refxpos *.refypos angle *.aim sub 35 *.focuseye mult add .eye5dir *.focuseye add store
-1 .shoot store
*.nrg 1500 >
-
I have no idea whats goin on
-
sounds cool though
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
.repro inc
swapbool
*.numties 0 = and
*.eye5 70 > and
.tie inc
swapbool
not
10 .up store
or
*.refxpos *.refypos angle *.aim sub 35 *.focuseye mult add .eye5dir *.focuseye add store
-1 .shoot store
*.nrg 1500 >
*.body 100 < and
-
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
.repro inc
swapbool
*.numties 0 = and
*.eye5 70 > and
.tie inc
swapbool
not
10 .up store
or
*.refxpos *.refypos angle *.aim sub 35 *.focuseye mult add .eye5dir *.focuseye add store
-1 .shoot store
*.nrg 1500 >
*.body 100 < and
10 .mrepro store
-
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
.repro inc
swapbool
*.numties 0 = and
*.eye5 70 > and
.tie inc
swapbool
not
10 .up store
or
*.refxpos *.refypos angle *.aim sub 35 *.focuseye mult add .eye5dir *.focuseye add store
-1 .shoot store
*.nrg 1500 >
*.body 100 < and
10 .mrepro store
600 .aimdx store
-
I ran it in DB, it dont do nothin
-
I ran it in DB, it dont do nothin
Yet.
-
it should at least do something though, right?
-
it should at least do something though, right?
Not yet.
-
but even when some of those conditionals are satisified, notihing is being stored
-
You need to put start at the beginning and stop at the end.
-
Sweet hadn't noticed people where building on this again
Last version I tryed could barely survive without costs on, but after a few mutations it started coming up with all sorts of tricks to survive, dispite it's somewhat skitzofrenic design.
(When reproducing it would first make a very small offspring, then move towards the offspring while incrementing .repro, aparently t doesn't reset if you can't reproduce, or something. Anyway it allowed it to produce larger offspring of random sizes using just .repro inc)
Point is, when running it mutations will usualy improve it rather fast.
start
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
.repro inc
swapbool
*.numties 0 = and
*.eye5 70 > and
.tie inc
swapbool
not
10 .up store
or
*.refxpos *.refypos angle *.aim sub 35 *.focuseye mult add .eye5dir *.focuseye add store
-1 .shoot store
*.nrg 1500 >
*.body 100 < and
10 .mrepro store
600 .aimdx store
.mkshell inc
-
It seems that any code I put at the end simply gets ignored...
nm, got it:
start
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
.repro inc
swapbool
*.numties 0 = and
*.eye5 70 > and
.tie inc
swapbool
not
10 .up store
or
*.refxpos *.refypos angle *.aim sub 35 *.focuseye mult add .eye5dir *.focuseye add store
-1 .shoot store
*.nrg 1500 >
*.body 100 < and
10 .mrepro store
600 .aimdx store
.mkshell inc
0 0 =
Come on , someone post something random, I have an idea for a store command...
-
I dont know if this is right but:
50 *.sharenrg store
*.refxpos *.refypos add .setaim store
-
start
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
.repro inc
swapbool
*.numties 0 = and
*.eye5 70 > and
.tie inc
swapbool
not
10 .up store
or
*.refxpos *.refypos angle *.aim sub 35 *.focuseye mult add .eye5dir *.focuseye add store
-1 .shoot store
*.nrg 1500 >
*.body 100 < and
10 .mrepro store
600 .aimdx store
.mkshell inc
0 0 =
50 *.sharenrg store
*.refxpos *.refypos add .setaim store
*.nrg 2000 sub 300 div .dx store
8)
-
start
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
.repro inc
swapbool
*.numties 0 = and
*.eye5 70 > and
.tie inc
swapbool
not
10 .up store
or
*.refxpos *.refypos angle *.aim sub 35 *.focuseye mult add .eye5dir *.focuseye add store
-1 .shoot store
*.nrg 1500 >
*.body 100 < and
10 .mrepro store
600 .aimdx store
.mkshell inc
0 0 =
50 *.sharenrg store
*.refxpos *.refypos add .setaim store
*.nrg 2000 sub 300 div .dx store
*.timer 123 mult 100 mod *.timer 321 mult abs 1000 mod store
-
funky, the only problem is if I disable mutations they still mutate because of mrepro. So I went in and disabled mutations internally for a test. Now they seem to just sit there, see picy:
-
edit code to force them to move when they smell death...
start
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
.repro inc
swapbool
*.numties 0 = and
*.eye5 70 > and
.tie inc
swapbool
not
10 .up store
or
*.refxpos *.refypos angle *.aim sub 35 *.focuseye mult add .eye5dir *.focuseye add store
-1 .shoot store
*.nrg 1500 >
*.body 100 < and
10 .mrepro store
600 .aimdx store
.mkshell inc
0 0 =
50 *.sharenrg store
*.refxpos *.refypos add .setaim store
*.nrg 2000 sub 300 div .dx store
*.timer 123 mult 100 mod *.timer 321 mult abs 1000 mod store
*.body 200 <
3 .up store
0 .fixpos store
0 .dx store
-
I got rid of my random store; Its not very helpful when the bot is already schizophrenic. Replaced with eye4 omni-eye.
start
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
.repro inc
swapbool
*.numties 0 = and
*.eye5 70 > and
.tie inc
swapbool
not
10 .up store
or
*.refxpos *.refypos angle *.aim sub 35 *.focuseye mult add .eye5dir *.focuseye add store
-1 .shoot store
*.nrg 1500 >
*.body 100 < and
10 .mrepro store
600 .aimdx store
.mkshell inc
0 0 =
50 *.sharenrg store
*.refxpos *.refypos add .setaim store
*.nrg 2000 sub 300 div .dx store
*.timer 123 mult 100 mod *.timer 321 mult abs 1000 mod store
*.body 200 <
3 .up store
0 .fixpos store
0 .dx store
"*.timer 123 mult 100 mod *.timer 321 mult abs 1000 mod store" is a freaky random generator which should be excluded and replaced with 1220 .eye4width store
Ok there, no cheating lol. I thought we were limited to one line, that's what most people did.
-
eh, Is that cheating? I think the idea was once you posted something, and someone else posted, you can not take it back? Where is the rule book?
example: I realized I can post multiple lines only after I posted "0 0 =" So, I was waiting for someone else to post like a donkey.
-
ok, we got:
start
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
.repro inc
swapbool
*.numties 0 = and
*.eye5 70 > and
.tie inc
swapbool
not
10 .up store
or
*.refxpos *.refypos angle *.aim sub 35 *.focuseye mult add .eye5dir *.focuseye add store
-1 .shoot store
*.nrg 1500 >
*.body 100 < and
10 .mrepro store
600 .aimdx store
.mkshell inc
0 0 =
1220 .eye4width store
*.nrg 2000 sub 300 div .dx store
sorry, had to chop someone, ended up being havingphun :(
Please post only one line from now on
-
Naa; I think we should leave the multi-line editions alone, just now only stick to one line.
I added them back in.
Added *51 .out1 store
start
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
.repro inc
swapbool
*.numties 0 = and
*.eye5 70 > and
.tie inc
swapbool
not
10 .up store
or
*.refxpos *.refypos angle *.aim sub 35 *.focuseye mult add .eye5dir *.focuseye add store
-1 .shoot store
*.nrg 1500 >
*.body 100 < and
10 .mrepro store
600 .aimdx store
.mkshell inc
0 0 =
50 *.sharenrg store
*.refxpos *.refypos add .setaim store
*.nrg 2000 sub 300 div .dx store
1220 .eye4width store
*.body 200 <
3 .up store
0 .fixpos store
0 .dx store
*51 .out1 store
-
Some reasons I really want to chop HavingPhun:
1.) It's just that my version does a lot better with Wrap Around Off (Default settings)
having phuns version makes the robot face right most of the time, They end up in the bottom right corner.
2.) He was the first one to place an illogical post. I was supposed to catch it then, but I was too excited to post my stuff...
3.) I am keeping his sharenrg, it actually improves the robot
start
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
.repro inc
swapbool
*.numties 0 = and
*.eye5 70 > and
.tie inc
swapbool
not
10 .up store
or
*.refxpos *.refypos angle *.aim sub 35 *.focuseye mult add .eye5dir *.focuseye add store
-1 .shoot store
*.nrg 1500 >
*.body 100 < and
10 .mrepro store
600 .aimdx store
.mkshell inc
0 0 =
50 *.sharenrg store
*.nrg 2000 sub 300 div .dx store
1220 .eye4width store
*.body 200 <
*51 .out1 store
-
start
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
.repro inc
swapbool
*.numties 0 = and
*.eye5 70 > and
.tie inc
swapbool
not
10 .up store
or
*.refxpos *.refypos angle *.aim sub 35 *.focuseye mult add .eye5dir *.focuseye add store
-1 .shoot store
*.nrg 1500 >
*.body 100 < and
10 .mrepro store
600 .aimdx store
.mkshell inc
0 0 =
50 *.sharenrg store
*.nrg 2000 sub 300 div .dx store
1220 .eye4width store
*.body 200 <
*51 .out1 store
*.refxpos *.refypos add 999 store
-
start
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
.repro inc
swapbool
*.numties 0 = and
*.eye5 70 > and
.tie inc
swapbool
not
10 .up store
or
*.refxpos *.refypos angle *.aim sub 35 *.focuseye mult add .eye5dir *.focuseye add store
-1 .shoot store
*.nrg 1500 >
*.body 100 < and
10 .mrepro store
600 .aimdx store
.mkshell inc
0 0 =
50 *.sharenrg store
*.nrg 2000 sub 300 div .dx store
1220 .eye4width store
*.body 200 <
*51 .out1 store
*.refxpos *.refypos add 999 store
*.eyef 40 >=
-
start
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
.repro inc
swapbool
*.numties 0 = and
*.eye5 70 > and
.tie inc
swapbool
not
10 .up store
or
*.refxpos *.refypos angle *.aim sub 35 *.focuseye mult add .eye5dir *.focuseye add store
-1 .shoot store
*.nrg 1500 >
*.body 100 < and
10 .mrepro store
600 .aimdx store
.mkshell inc
0 0 =
50 *.sharenrg store
*.nrg 2000 sub 300 div .dx store
1220 .eye4width store
*.body 200 <
*51 .out1 store
*.refxpos *.refypos add 999 store
*.eyef 40 >=
*.refypos 998 store
-
start
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
.repro inc
swapbool
*.numties 0 = and
*.eye5 70 > and
.tie inc
swapbool
not
10 .up store
or
*.refxpos *.refypos angle *.aim sub 35 *.focuseye mult add .eye5dir *.focuseye add store
-1 .shoot store
*.nrg 1500 >
*.body 100 < and
10 .mrepro store
600 .aimdx store
.mkshell inc
0 0 =
50 *.sharenrg store
*.nrg 2000 sub 300 div .dx store
1220 .eye4width store
*.body 200 <
*51 .out1 store
*.refxpos *.refypos add 999 store
*.eyef 40 >=
*.refypos 998 store
*52 *998 add 2 div 52 store