Author Topic: Guardian v0.9 (F1)(Trafalgar)-15.07.07  (Read 8674 times)

Offline Trafalgar

  • Bot Destroyer
  • ***
  • Posts: 122
    • View Profile
Guardian v0.9 (F1)(Trafalgar)-15.07.07
« on: July 15, 2007, 06:09:42 PM »
This is not F2-valid at the moment, mainly because it tie-feeds from veggies, and uses sharenrg on them too. It also keeps an mkvirus timer going at all times (it has a crazy long genome, so it never finishes, but that keeps any other virus from using mkvirus inside this bot (I think)).

Other things it does that I think F2 should forbid, but which it apparently doesn't:
Instakill using ties (setting strvenom to 10000)
Instakill using shots (same way)

This beats every bot in the league when I run it, though the match with Etch runs very slow.

(PyBot is a python program/script I've been working on)

Here's a link to it, or you can get it from the code blocks below (it's split between two posts, since it doesn't fit in just one): http://shadowlord13.googlepages.com/Guardian-0.9.txt

DNA length: 15841

Code: [Select]
'Guardian-0.9.txt compiled by PyBot V1 from Guardian-0.9.pyr.
'Guardian bot by Trafalgar
'The compiled version of this may or may not be somewhat readable.
'
def targFriendlyComp 990
def targVeggieComp 989
def tieFriendlyComp 988
def tieVeggieComp 987
def tieNumAfter 909
def delgeneDecChecked 961
def reproducedLastCycle 962
def reproTimer 964
def minBody 920
def reproEnergy 980
def closingRate 982
def reproTimerMax 971
def threatMode 985
cond

start
700 .reproEnergy *.reproEnergy 0 sub sgn abs - ++ mult store
10 rnd .closingRate *.closingRate 0 sub sgn abs - ++ mult store
*.reproTimerMax 100 sub 100 floor .reproTimerMax *.reproTimerMax 0 sub sgn 0 floor *.robage 1 sub sgn abs - ++ & mult store
1500 .reproTimerMax *.reproTimerMax 0 sub sgn abs - ++ mult store
*.reproTimerMax 10 div .minBody *.minBody 0 sub sgn abs - ++ mult store
*.closingRate 2 rnd add 1 sub 30 ceil 1 floor .closingRate *.robage 0 sub sgn abs - ++ mult store
*.threatMode 1 | dup *.threatMode sub sgn abs *.eyef 0 sub sgn 0 floor *.refkills 0 sub sgn 0 floor & *.refeye *.myeye sub sgn abs - ++ *.refshoot *.myshoot sub sgn abs - ++ & *.reftie *.myties sub sgn abs - ++ & *.refup *.myup sub sgn abs - ++ & *.refdn *.mydn sub sgn abs - ++ & *.refsx *.mysx sub sgn abs - ++ & *.refdx *.mydx sub sgn abs - ++ & *.refaimsx *.myaimsx sub sgn abs - ++ & *.refaimdx *.myaimdx sub sgn abs - ++ & *.in1 3694 sub sgn abs - ++ *.in2 7505 sub sgn abs - ++ & *.in3 29703 sub sgn abs - ++ & *.in4 9586 sub sgn abs - ++ & *.in5 31105 sub sgn abs - ++ & & *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | *.robage 1 sub sgn - 0 floor | *.body 50 sub sgn - 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | - ++ & *.tiepres *.tienum sub sgn abs - ++ *.trefkills 0 sub sgn 0 floor & *.trefeye *.myeye sub sgn abs - ++ *.trefshoot *.myshoot sub sgn abs - ++ & *.trefup *.myup sub sgn abs - ++ & *.trefdn *.mydn sub sgn abs - ++ & *.trefsx *.mysx sub sgn abs - ++ & *.trefdx *.mydx sub sgn abs - ++ & *.trefaimsx *.myaimsx sub sgn abs - ++ & *.trefaimdx *.myaimdx sub sgn abs - ++ & *.robage 1 sub sgn - 0 floor | *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | - ++ & | *.shang 0 sub sgn abs | & .threatMode mult store
*.threatMode 2 | dup *.threatMode sub sgn abs *.shflav -6 sub sgn abs - ++ *.shang 0 sub sgn abs & & .threatMode mult store
*.threatMode 4 | dup *.threatMode sub sgn abs *.eyef 0 sub sgn 0 floor *.in1 8081 sub sgn abs - ++ *.in2 25755 sub sgn abs - ++ | *.in3 22200 sub sgn abs - ++ | *.in4 25782 sub sgn abs - ++ | *.in5 315 sub sgn abs - ++ | *.robage 5 mod 0 sub sgn abs - ++ *.memval 0 sub sgn 0 floor & *.memval 30 sub sgn - 0 floor & | & *.genes 1 sub sgn 0 floor | & .threatMode mult store
*.threatMode *.memval | dup *.threatMode sub sgn abs *.memval 0 sub sgn abs *.robage 5 mod 0 sub sgn abs & *.refeye *.myeye sub sgn abs - ++ *.refshoot *.myshoot sub sgn abs - ++ & *.reftie *.myties sub sgn abs - ++ & *.refup *.myup sub sgn abs - ++ & *.refdn *.mydn sub sgn abs - ++ & *.refsx *.mysx sub sgn abs - ++ & *.refdx *.mydx sub sgn abs - ++ & *.refaimsx *.myaimsx sub sgn abs - ++ & *.refaimdx *.myaimdx sub sgn abs - ++ & *.in1 3694 sub sgn abs - ++ *.in2 7505 sub sgn abs - ++ & *.in3 29703 sub sgn abs - ++ & *.in4 9586 sub sgn abs - ++ & *.in5 31105 sub sgn abs - ++ & & *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | *.robage 1 sub sgn - 0 floor | *.body 50 sub sgn - 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | & & .threatMode mult store
.vtimer dup *.memloc sub sgn abs *.genes 1 sub sgn abs - ++ *.robage 5 mod 4 sub sgn abs - ++ & *.nrg 300 sub sgn 0 floor & & .memloc mult store
.vtimer dup *.tmemloc sub sgn abs *.genes 1 sub sgn abs - ++ *.robage 5 mod 4 sub sgn abs - ++ & *.nrg 300 sub sgn 0 floor & & .tmemloc mult store
.threatMode dup *.memloc sub sgn abs *.genes 1 sub sgn abs - ++ *.robage 5 mod 4 sub sgn abs & *.nrg 300 sub sgn 0 floor & & .memloc mult store
.threatMode dup *.tmemloc sub sgn abs *.genes 1 sub sgn abs - ++ *.robage 5 mod 4 sub sgn abs & *.nrg 300 sub sgn 0 floor & & .tmemloc mult store
3694 dup *.out1 sub sgn abs *.genes 1 sub sgn abs - ++ & .out1 mult store
7505 dup *.out2 sub sgn abs *.genes 1 sub sgn abs - ++ & .out2 mult store
29703 dup *.out3 sub sgn abs *.genes 1 sub sgn abs - ++ & .out3 mult store
9586 dup *.out4 sub sgn abs *.genes 1 sub sgn abs - ++ & .out4 mult store
31105 dup *.out5 sub sgn abs *.genes 1 sub sgn abs - ++ & .out5 mult store
8081 dup *.out1 sub sgn abs *.genes 1 sub sgn 0 floor *.thisgene 1 sub sgn abs - ++ & & .out1 mult store
25755 dup *.out2 sub sgn abs *.genes 1 sub sgn 0 floor *.thisgene 1 sub sgn abs - ++ & & .out2 mult store
22200 dup *.out3 sub sgn abs *.genes 1 sub sgn 0 floor *.thisgene 1 sub sgn abs - ++ & & .out3 mult store
25782 dup *.out4 sub sgn abs *.genes 1 sub sgn 0 floor *.thisgene 1 sub sgn abs - ++ & & .out4 mult store
315 dup *.out5 sub sgn abs *.genes 1 sub sgn 0 floor *.thisgene 1 sub sgn abs - ++ & & .out5 mult store
7799 dup *.out1 sub sgn abs *.genes 1 sub sgn 0 floor *.thisgene 1 sub sgn 0 floor & *.out1 3694 sub sgn abs & *.out1 8081 sub sgn abs & & .out1 mult store
901 dup *.out2 sub sgn abs *.genes 1 sub sgn 0 floor *.thisgene 1 sub sgn 0 floor & *.out2 7505 sub sgn abs & *.out2 25755 sub sgn abs & & .out2 mult store
6876 dup *.out3 sub sgn abs *.genes 1 sub sgn 0 floor *.thisgene 1 sub sgn 0 floor & *.out3 29703 sub sgn abs & *.out3 22200 sub sgn abs & & .out3 mult store
16558 dup *.out4 sub sgn abs *.genes 1 sub sgn 0 floor *.thisgene 1 sub sgn 0 floor & *.out4 9586 sub sgn abs & *.out4 25782 sub sgn abs & & .out4 mult store
2960 dup *.out5 sub sgn abs *.genes 1 sub sgn 0 floor *.thisgene 1 sub sgn 0 floor & *.out5 31105 sub sgn abs & *.out5 315 sub sgn abs & & .out5 mult store
8 rnd 4 sub dup *.focuseye sub sgn abs *.eye1width 1221 sub sgn abs *.focuseye -4 sub sgn abs - ++ *.eye1width 1221 sub sgn abs *.eye1dir -140 sub sgn abs | & *.focuseye -3 sub sgn abs - ++ *.eye2width 1221 sub sgn abs *.eye2dir -105 sub sgn abs | & | *.focuseye -2 sub sgn abs - ++ *.eye3width 1221 sub sgn abs *.eye3dir -70 sub sgn abs | & | *.focuseye -1 sub sgn abs - ++ *.eye4width 1221 sub sgn abs *.eye4dir -35 sub sgn abs | & | *.focuseye 0 sub sgn abs - ++ *.eye5width 1221 sub sgn abs *.eye5dir 0 sub sgn abs | & | *.focuseye 1 sub sgn abs - ++ *.eye6width 1221 sub sgn abs *.eye6dir 35 sub sgn abs | & | *.focuseye 2 sub sgn abs - ++ *.eye7width 1221 sub sgn abs *.eye7dir 70 sub sgn abs | & | *.focuseye 3 sub sgn abs - ++ *.eye8width 1221 sub sgn abs *.eye8dir 105 sub sgn abs | & | *.focuseye 4 sub sgn abs - ++ *.eye9width 1221 sub sgn abs *.eye9dir 140 sub sgn abs | & | | & .focuseye mult store
1221 dup *.eye1width sub sgn abs *.genes 1 sub sgn abs - ++ & .eye1width mult store
1221 dup *.eye2width sub sgn abs *.genes 1 sub sgn abs - ++ & .eye2width mult store
1221 dup *.eye3width sub sgn abs *.genes 1 sub sgn abs - ++ & .eye3width mult store
1221 dup *.eye4width sub sgn abs *.genes 1 sub sgn abs - ++ & .eye4width mult store
1221 dup *.eye5width sub sgn abs *.genes 1 sub sgn abs - ++ & .eye5width mult store
1221 dup *.eye6width sub sgn abs *.genes 1 sub sgn abs - ++ & .eye6width mult store
1221 dup *.eye7width sub sgn abs *.genes 1 sub sgn abs - ++ & .eye7width mult store
1221 dup *.eye8width sub sgn abs *.genes 1 sub sgn abs - ++ & .eye8width mult store
1221 dup *.eye9width sub sgn abs *.genes 1 sub sgn abs - ++ & .eye9width mult store
-140 dup *.eye1dir sub sgn abs *.genes 1 sub sgn abs - ++ & .eye1dir mult store
-105 dup *.eye2dir sub sgn abs *.genes 1 sub sgn abs - ++ & .eye2dir mult store
-70 dup *.eye3dir sub sgn abs *.genes 1 sub sgn abs - ++ & .eye3dir mult store
-35 dup *.eye4dir sub sgn abs *.genes 1 sub sgn abs - ++ & .eye4dir mult store
0 dup *.eye5dir sub sgn abs *.genes 1 sub sgn abs - ++ & .eye5dir mult store
35 dup *.eye6dir sub sgn abs *.genes 1 sub sgn abs - ++ & .eye6dir mult store
70 dup *.eye7dir sub sgn abs *.genes 1 sub sgn abs - ++ & .eye7dir mult store
105 dup *.eye8dir sub sgn abs *.genes 1 sub sgn abs - ++ & .eye8dir mult store
140 dup *.eye9dir sub sgn abs *.genes 1 sub sgn abs - ++ & .eye9dir mult store
1222 dup *.eye1width sub sgn abs *.genes 1 sub sgn 0 floor & .eye1width mult store
1222 dup *.eye2width sub sgn abs *.genes 1 sub sgn 0 floor & .eye2width mult store
1222 dup *.eye3width sub sgn abs *.genes 1 sub sgn 0 floor & .eye3width mult store
1222 dup *.eye4width sub sgn abs *.genes 1 sub sgn 0 floor & .eye4width mult store
1222 dup *.eye5width sub sgn abs *.genes 1 sub sgn 0 floor & .eye5width mult store
1222 dup *.eye6width sub sgn abs *.genes 1 sub sgn 0 floor & .eye6width mult store
1222 dup *.eye7width sub sgn abs *.genes 1 sub sgn 0 floor & .eye7width mult store
1222 dup *.eye8width sub sgn abs *.genes 1 sub sgn 0 floor & .eye8width mult store
1222 dup *.eye9width sub sgn abs *.genes 1 sub sgn 0 floor & .eye9width mult store
630 dup *.eye1dir sub sgn abs *.genes 1 sub sgn 0 floor & .eye1dir mult store
630 dup *.eye2dir sub sgn abs *.genes 1 sub sgn 0 floor & .eye2dir mult store
630 dup *.eye3dir sub sgn abs *.genes 1 sub sgn 0 floor & .eye3dir mult store
630 dup *.eye4dir sub sgn abs *.genes 1 sub sgn 0 floor & .eye4dir mult store
630 dup *.eye5dir sub sgn abs *.genes 1 sub sgn 0 floor & .eye5dir mult store
630 dup *.eye6dir sub sgn abs *.genes 1 sub sgn 0 floor & .eye6dir mult store
630 dup *.eye7dir sub sgn abs *.genes 1 sub sgn 0 floor & .eye7dir mult store
630 dup *.eye8dir sub sgn abs *.genes 1 sub sgn 0 floor & .eye8dir mult store
630 dup *.eye9dir sub sgn abs *.genes 1 sub sgn 0 floor & .eye9dir mult store
315 .setaim *.aim 315 sub sgn abs mult store
*.ypos *.refypos sub sgn 100 mult dup *.dn sub sgn abs *.eyef 50 sub 1 add sgn 0 floor *.refeye *.myeye sub sgn abs - ++ *.refshoot *.myshoot sub sgn abs - ++ & *.reftie *.myties sub sgn abs - ++ & *.refup *.myup sub sgn abs - ++ & *.refdn *.mydn sub sgn abs - ++ & *.refsx *.mysx sub sgn abs - ++ & *.refdx *.mydx sub sgn abs - ++ & *.refaimsx *.myaimsx sub sgn abs - ++ & *.refaimdx *.myaimdx sub sgn abs - ++ & *.in1 3694 sub sgn abs - ++ *.in2 7505 sub sgn abs - ++ & *.in3 29703 sub sgn abs - ++ & *.in4 9586 sub sgn abs - ++ & *.in5 31105 sub sgn abs - ++ & & *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | *.robage 1 sub sgn - 0 floor | *.body 50 sub sgn - 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | | *.robage 1 sub 1 add sgn 0 floor & *.nrg 300 sub sgn 0 floor & & .dn mult store
*.refxpos *.xpos sub sgn 100 mult dup *.sx sub sgn abs *.eyef 50 sub 1 add sgn 0 floor *.refeye *.myeye sub sgn abs - ++ *.refshoot *.myshoot sub sgn abs - ++ & *.reftie *.myties sub sgn abs - ++ & *.refup *.myup sub sgn abs - ++ & *.refdn *.mydn sub sgn abs - ++ & *.refsx *.mysx sub sgn abs - ++ & *.refdx *.mydx sub sgn abs - ++ & *.refaimsx *.myaimsx sub sgn abs - ++ & *.refaimdx *.myaimdx sub sgn abs - ++ & *.in1 3694 sub sgn abs - ++ *.in2 7505 sub sgn abs - ++ & *.in3 29703 sub sgn abs - ++ & *.in4 9586 sub sgn abs - ++ & *.in5 31105 sub sgn abs - ++ & & *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | *.robage 1 sub sgn - 0 floor | *.body 50 sub sgn - 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | | *.robage 1 sub 1 add sgn 0 floor & *.nrg 300 sub sgn 0 floor & & .sx mult store
*.refveldn *.veldn sub *.refypos 500 sub *.xpos *.refxpos sub 0 sub 1 add sgn 0 floor 1000 mult add *.ypos sub 10 div add dup *.dn sub sgn abs *.numties 0 sub sgn abs - ++ *.eyef 30 sub 1 add sgn 0 floor & *.eyef 60 sub sgn - 0 floor & *.refeye *.myeye sub sgn abs - ++ *.refshoot *.myshoot sub sgn abs - ++ & *.reftie *.myties sub sgn abs - ++ & *.refup *.myup sub sgn abs - ++ & *.refdn *.mydn sub sgn abs - ++ & *.refsx *.mysx sub sgn abs - ++ & *.refdx *.mydx sub sgn abs - ++ & *.refaimsx *.myaimsx sub sgn abs - ++ & *.refaimdx *.myaimdx sub sgn abs - ++ & *.in1 3694 sub sgn abs - ++ *.in2 7505 sub sgn abs - ++ & *.in3 29703 sub sgn abs - ++ & *.in4 9586 sub sgn abs - ++ & *.in5 31105 sub sgn abs - ++ & & *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | *.robage 1 sub sgn - 0 floor | *.body 50 sub sgn - 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | - ++ & *.robage 1 sub 1 add sgn 0 floor & *.threatMode 0 sub sgn 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & - ++ & & *.robage 4 mod 0 sub sgn abs & *.nrg 300 sub sgn 0 floor & & .dn mult store
*.refveldx *.veldx sub - *.xpos *.refxpos 500 sub *.ypos *.refypos sub 0 sub sgn - 0 floor 1000 mult add sub 10 div add dup *.sx sub sgn abs *.numties 0 sub sgn abs - ++ *.eyef 30 sub 1 add sgn 0 floor & *.eyef 60 sub sgn - 0 floor & *.refeye *.myeye sub sgn abs - ++ *.refshoot *.myshoot sub sgn abs - ++ & *.reftie *.myties sub sgn abs - ++ & *.refup *.myup sub sgn abs - ++ & *.refdn *.mydn sub sgn abs - ++ & *.refsx *.mysx sub sgn abs - ++ & *.refdx *.mydx sub sgn abs - ++ & *.refaimsx *.myaimsx sub sgn abs - ++ & *.refaimdx *.myaimdx sub sgn abs - ++ & *.in1 3694 sub sgn abs - ++ *.in2 7505 sub sgn abs - ++ & *.in3 29703 sub sgn abs - ++ & *.in4 9586 sub sgn abs - ++ & *.in5 31105 sub sgn abs - ++ & & *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | *.robage 1 sub sgn - 0 floor | *.body 50 sub sgn - 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | - ++ & *.robage 1 sub 1 add sgn 0 floor & *.threatMode 0 sub sgn 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & - ++ & & *.robage 4 mod 0 sub sgn abs & *.nrg 300 sub sgn 0 floor & & .sx mult store
*.refveldn dup *.dn sub sgn abs *.eyef 30 sub 1 add sgn 0 floor *.eyef 60 sub sgn - 0 floor & *.refeye *.myeye sub sgn abs - ++ *.refshoot *.myshoot sub sgn abs - ++ & *.reftie *.myties sub sgn abs - ++ & *.refup *.myup sub sgn abs - ++ & *.refdn *.mydn sub sgn abs - ++ & *.refsx *.mysx sub sgn abs - ++ & *.refdx *.mydx sub sgn abs - ++ & *.refaimsx *.myaimsx sub sgn abs - ++ & *.refaimdx *.myaimdx sub sgn abs - ++ & *.in1 3694 sub sgn abs - ++ *.in2 7505 sub sgn abs - ++ & *.in3 29703 sub sgn abs - ++ & *.in4 9586 sub sgn abs - ++ & *.in5 31105 sub sgn abs - ++ & & *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | *.robage 1 sub sgn - 0 floor | *.body 50 sub sgn - 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | - ++ & *.robage 1 sub 1 add sgn 0 floor & *.threatMode 0 sub sgn abs - ++ *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & | *.nrg 300 sub 1 sub sgn - 0 floor | & *.robage 4 mod 0 sub sgn abs & *.nrg 300 sub sgn 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & | & & .dn mult store
*.refveldx - dup *.sx sub sgn abs *.eyef 30 sub 1 add sgn 0 floor *.eyef 60 sub sgn - 0 floor & *.refeye *.myeye sub sgn abs - ++ *.refshoot *.myshoot sub sgn abs - ++ & *.reftie *.myties sub sgn abs - ++ & *.refup *.myup sub sgn abs - ++ & *.refdn *.mydn sub sgn abs - ++ & *.refsx *.mysx sub sgn abs - ++ & *.refdx *.mydx sub sgn abs - ++ & *.refaimsx *.myaimsx sub sgn abs - ++ & *.refaimdx *.myaimdx sub sgn abs - ++ & *.in1 3694 sub sgn abs - ++ *.in2 7505 sub sgn abs - ++ & *.in3 29703 sub sgn abs - ++ & *.in4 9586 sub sgn abs - ++ & *.in5 31105 sub sgn abs - ++ & & *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | *.robage 1 sub sgn - 0 floor | *.body 50 sub sgn - 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | - ++ & *.robage 1 sub 1 add sgn 0 floor & *.threatMode 0 sub sgn abs - ++ *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & | *.nrg 300 sub 1 sub sgn - 0 floor | & *.robage 4 mod 0 sub sgn abs & *.nrg 300 sub sgn 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & | & & .sx mult store
*.refveldn *.veldn sub *.refypos 500 sub *.xpos *.refxpos sub 0 sub 1 add sgn 0 floor 1000 mult add *.ypos sub 10 div add dup *.dn sub sgn abs *.numties 0 sub sgn abs - ++ *.eyef 0 sub sgn 0 floor & *.eyef 30 sub sgn - 0 floor & *.refeye *.myeye sub sgn abs - ++ *.refshoot *.myshoot sub sgn abs - ++ & *.reftie *.myties sub sgn abs - ++ & *.refup *.myup sub sgn abs - ++ & *.refdn *.mydn sub sgn abs - ++ & *.refsx *.mysx sub sgn abs - ++ & *.refdx *.mydx sub sgn abs - ++ & *.refaimsx *.myaimsx sub sgn abs - ++ & *.refaimdx *.myaimdx sub sgn abs - ++ & *.in1 3694 sub sgn abs - ++ *.in2 7505 sub sgn abs - ++ & *.in3 29703 sub sgn abs - ++ & *.in4 9586 sub sgn abs - ++ & *.in5 31105 sub sgn abs - ++ & & *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | *.robage 1 sub sgn - 0 floor | *.body 50 sub sgn - 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | - ++ & *.robage 1 sub 1 add sgn 0 floor & *.threatMode 0 sub sgn 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & - ++ & & *.robage 4 mod 0 sub sgn abs & *.nrg 300 sub sgn 0 floor & & .dn mult store
*.refveldx *.veldx sub - *.xpos *.refxpos 500 sub *.ypos *.refypos sub 0 sub sgn - 0 floor 1000 mult add sub 10 div add dup *.sx sub sgn abs *.numties 0 sub sgn abs - ++ *.eyef 0 sub sgn 0 floor & *.eyef 30 sub sgn - 0 floor & *.refeye *.myeye sub sgn abs - ++ *.refshoot *.myshoot sub sgn abs - ++ & *.reftie *.myties sub sgn abs - ++ & *.refup *.myup sub sgn abs - ++ & *.refdn *.mydn sub sgn abs - ++ & *.refsx *.mysx sub sgn abs - ++ & *.refdx *.mydx sub sgn abs - ++ & *.refaimsx *.myaimsx sub sgn abs - ++ & *.refaimdx *.myaimdx sub sgn abs - ++ & *.in1 3694 sub sgn abs - ++ *.in2 7505 sub sgn abs - ++ & *.in3 29703 sub sgn abs - ++ & *.in4 9586 sub sgn abs - ++ & *.in5 31105 sub sgn abs - ++ & & *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | *.robage 1 sub sgn - 0 floor | *.body 50 sub sgn - 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | - ++ & *.robage 1 sub 1 add sgn 0 floor & *.threatMode 0 sub sgn 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & - ++ & & *.robage 4 mod 0 sub sgn abs & *.nrg 300 sub sgn 0 floor & & .sx mult store
*.refveldn *.refypos *.ypos sub *.closingRate div add dup *.dn sub sgn abs *.eyef 0 sub sgn 0 floor *.eyef 30 sub sgn - 0 floor & *.refeye *.myeye sub sgn abs - ++ *.refshoot *.myshoot sub sgn abs - ++ & *.reftie *.myties sub sgn abs - ++ & *.refup *.myup sub sgn abs - ++ & *.refdn *.mydn sub sgn abs - ++ & *.refsx *.mysx sub sgn abs - ++ & *.refdx *.mydx sub sgn abs - ++ & *.refaimsx *.myaimsx sub sgn abs - ++ & *.refaimdx *.myaimdx sub sgn abs - ++ & *.in1 3694 sub sgn abs - ++ *.in2 7505 sub sgn abs - ++ & *.in3 29703 sub sgn abs - ++ & *.in4 9586 sub sgn abs - ++ & *.in5 31105 sub sgn abs - ++ & & *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | *.robage 1 sub sgn - 0 floor | *.body 50 sub sgn - 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | - ++ & *.robage 1 sub 1 add sgn 0 floor & *.threatMode 0 sub sgn abs - ++ *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & | & *.robage 4 mod 0 sub sgn abs & *.nrg 300 sub sgn 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & | *.nrg 300 sub 1 sub sgn - 0 floor | & & .dn mult store
*.refveldx - *.xpos *.refxpos sub *.closingRate div add dup *.sx sub sgn abs *.eyef 0 sub sgn 0 floor *.eyef 30 sub sgn - 0 floor & *.refeye *.myeye sub sgn abs - ++ *.refshoot *.myshoot sub sgn abs - ++ & *.reftie *.myties sub sgn abs - ++ & *.refup *.myup sub sgn abs - ++ & *.refdn *.mydn sub sgn abs - ++ & *.refsx *.mysx sub sgn abs - ++ & *.refdx *.mydx sub sgn abs - ++ & *.refaimsx *.myaimsx sub sgn abs - ++ & *.refaimdx *.myaimdx sub sgn abs - ++ & *.in1 3694 sub sgn abs - ++ *.in2 7505 sub sgn abs - ++ & *.in3 29703 sub sgn abs - ++ & *.in4 9586 sub sgn abs - ++ & *.in5 31105 sub sgn abs - ++ & & *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | *.robage 1 sub sgn - 0 floor | *.body 50 sub sgn - 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | - ++ & *.robage 1 sub 1 add sgn 0 floor & *.threatMode 0 sub sgn abs - ++ *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & | & *.robage 4 mod 0 sub sgn abs & *.nrg 300 sub sgn 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & | *.nrg 300 sub 1 sub sgn - 0 floor | & & .sx mult store
0 dup *.up sub sgn abs .up mult store
0 dup *.dx sub sgn abs .dx mult store
.vshoot *.eyef 0 sub sgn 0 floor *.refeye *.myeye sub sgn abs - ++ *.refshoot *.myshoot sub sgn abs - ++ & *.reftie *.myties sub sgn abs - ++ & *.refup *.myup sub sgn abs - ++ & *.refdn *.mydn sub sgn abs - ++ & *.refsx *.mysx sub sgn abs - ++ & *.refdx *.mydx sub sgn abs - ++ & *.refaimsx *.myaimsx sub sgn abs - ++ & *.refaimdx *.myaimdx sub sgn abs - ++ & *.in1 3694 sub sgn abs - ++ *.in2 7505 sub sgn abs - ++ & *.in3 29703 sub sgn abs - ++ & *.in4 9586 sub sgn abs - ++ & *.in5 31105 sub sgn abs - ++ & & *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | *.robage 1 sub sgn - 0 floor | *.body 50 sub sgn - 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | - ++ & *.vshoot 0 sub sgn abs - ++ & *.vtimer 1 sub sgn abs - ++ & mult inc
-6 dup *.shoot sub sgn abs *.eyef 0 sub sgn 0 floor *.robage 4 mod 0 sub sgn abs - ++ & *.refxpos *.refveldx *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div add *.refypos *.refvelup *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div sub dist 800 sub sgn - 0 floor & *.robage 1 sub 1 add sgn 0 floor & *.refshell 50 sub sgn - 0 floor *.refxpos *.refveldx *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div add *.refypos *.refvelup *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div sub dist 480 sub sgn - 0 floor - ++ | & *.refeye *.myeye sub sgn abs - ++ *.refshoot *.myshoot sub sgn abs - ++ & *.reftie *.myties sub sgn abs - ++ & *.refup *.myup sub sgn abs - ++ & *.refdn *.mydn sub sgn abs - ++ & *.refsx *.mysx sub sgn abs - ++ & *.refdx *.mydx sub sgn abs - ++ & *.refaimsx *.myaimsx sub sgn abs - ++ & *.refaimdx *.myaimdx sub sgn abs - ++ & *.in1 3694 sub sgn abs - ++ *.in2 7505 sub sgn abs - ++ & *.in3 29703 sub sgn abs - ++ & *.in4 9586 sub sgn abs - ++ & *.in5 31105 sub sgn abs - ++ & & *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | *.robage 1 sub sgn - 0 floor | *.body 50 sub sgn - 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | - ++ & *.waste 100 sub 1 sub sgn - 0 floor & *.refbody *.refnrg sub sgn - 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & | & *.threatMode 2 & 0 sub sgn abs - ++ & *.nrg 300 sub sgn 0 floor & & .shoot mult store
-1 dup *.shoot sub sgn abs *.eyef 0 sub sgn 0 floor *.robage 4 mod 0 sub sgn abs - ++ & *.refxpos *.refveldx *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div add *.refypos *.refvelup *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div sub dist 800 sub sgn - 0 floor & *.robage 1 sub 1 add sgn 0 floor & *.refshell 50 sub sgn - 0 floor *.refxpos *.refveldx *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div add *.refypos *.refvelup *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div sub dist 480 sub sgn - 0 floor - ++ | & *.refeye *.myeye sub sgn abs - ++ *.refshoot *.myshoot sub sgn abs - ++ & *.reftie *.myties sub sgn abs - ++ & *.refup *.myup sub sgn abs - ++ & *.refdn *.mydn sub sgn abs - ++ & *.refsx *.mysx sub sgn abs - ++ & *.refdx *.mydx sub sgn abs - ++ & *.refaimsx *.myaimsx sub sgn abs - ++ & *.refaimdx *.myaimdx sub sgn abs - ++ & *.in1 3694 sub sgn abs - ++ *.in2 7505 sub sgn abs - ++ & *.in3 29703 sub sgn abs - ++ & *.in4 9586 sub sgn abs - ++ & *.in5 31105 sub sgn abs - ++ & & *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | *.robage 1 sub sgn - 0 floor | *.body 50 sub sgn - 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | - ++ & *.waste 100 sub 1 sub sgn - 0 floor & *.refbody *.refnrg sub 1 add sgn 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & - ++ & & *.threatMode 2 & 0 sub sgn abs - ++ & *.nrg 300 sub sgn 0 floor & & .shoot mult store
-4 dup *.shootval sub sgn abs *.eyef 0 sub sgn 0 floor *.robage 4 mod 0 sub sgn abs - ++ & *.refxpos *.refveldx *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div add *.refypos *.refvelup *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div sub dist 480 sub sgn - 0 floor & *.robage 1 sub 1 add sgn 0 floor & *.refshell 50 sub sgn - 0 floor *.refxpos *.refveldx *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div add *.refypos *.refvelup *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div sub dist 480 sub sgn - 0 floor - ++ | & *.refeye *.myeye sub sgn abs - ++ *.refshoot *.myshoot sub sgn abs - ++ & *.reftie *.myties sub sgn abs - ++ & *.refup *.myup sub sgn abs - ++ & *.refdn *.mydn sub sgn abs - ++ & *.refsx *.mysx sub sgn abs - ++ & *.refdx *.mydx sub sgn abs - ++ & *.refaimsx *.myaimsx sub sgn abs - ++ & *.refaimdx *.myaimdx sub sgn abs - ++ & *.in1 3694 sub sgn abs - ++ *.in2 7505 sub sgn abs - ++ & *.in3 29703 sub sgn abs - ++ & *.in4 9586 sub sgn abs - ++ & *.in5 31105 sub sgn abs - ++ & & *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | *.robage 1 sub sgn - 0 floor | *.body 50 sub sgn - 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | - ++ & *.waste 100 sub 1 sub sgn - 0 floor & *.threatMode 2 & 0 sub sgn abs - ++ & *.nrg 300 sub sgn 0 floor & & .shootval mult store
-8 dup *.shootval sub sgn abs *.eyef 0 sub sgn 0 floor *.robage 4 mod 0 sub sgn abs - ++ & *.refxpos *.refveldx *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div add *.refypos *.refvelup *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div sub dist 650 sub sgn - 0 floor & *.refxpos *.refveldx *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div add *.refypos *.refvelup *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div sub dist 480 sub sgn - 0 floor - ++ & *.robage 1 sub 1 add sgn 0 floor & *.refshell 50 sub sgn - 0 floor *.refxpos *.refveldx *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div add *.refypos *.refvelup *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div sub dist 480 sub sgn - 0 floor - ++ | & *.refeye *.myeye sub sgn abs - ++ *.refshoot *.myshoot sub sgn abs - ++ & *.reftie *.myties sub sgn abs - ++ & *.refup *.myup sub sgn abs - ++ & *.refdn *.mydn sub sgn abs - ++ & *.refsx *.mysx sub sgn abs - ++ & *.refdx *.mydx sub sgn abs - ++ & *.refaimsx *.myaimsx sub sgn abs - ++ & *.refaimdx *.myaimdx sub sgn abs - ++ & *.in1 3694 sub sgn abs - ++ *.in2 7505 sub sgn abs - ++ & *.in3 29703 sub sgn abs - ++ & *.in4 9586 sub sgn abs - ++ & *.in5 31105 sub sgn abs - ++ & & *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | *.robage 1 sub sgn - 0 floor | *.body 50 sub sgn - 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | - ++ & *.threatMode 2 & 0 sub sgn abs - ++ & *.nrg 300 sub sgn 0 floor & & .shootval mult store
-10 dup *.shootval sub sgn abs *.eyef 0 sub sgn 0 floor *.robage 4 mod 0 sub sgn abs - ++ & *.refxpos *.refveldx *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div add *.refypos *.refvelup *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div sub dist 800 sub sgn - 0 floor & *.refxpos *.refveldx *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div add *.refypos *.refvelup *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div sub dist 480 sub sgn - 0 floor - ++ & *.robage 1 sub 1 add sgn 0 floor & *.refshell 50 sub sgn - 0 floor *.refxpos *.refveldx *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div add *.refypos *.refvelup *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div sub dist 480 sub sgn - 0 floor - ++ | & *.refeye *.myeye sub sgn abs - ++ *.refshoot *.myshoot sub sgn abs - ++ & *.reftie *.myties sub sgn abs - ++ & *.refup *.myup sub sgn abs - ++ & *.refdn *.mydn sub sgn abs - ++ & *.refsx *.mysx sub sgn abs - ++ & *.refdx *.mydx sub sgn abs - ++ & *.refaimsx *.myaimsx sub sgn abs - ++ & *.refaimdx *.myaimdx sub sgn abs - ++ & *.in1 3694 sub sgn abs - ++ *.in2 7505 sub sgn abs - ++ & *.in3 29703 sub sgn abs - ++ & *.in4 9586 sub sgn abs - ++ & *.in5 31105 sub sgn abs - ++ & & *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | *.robage 1 sub sgn - 0 floor | *.body 50 sub sgn - 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | - ++ & *.threatMode 2 & 0 sub sgn abs - ++ & *.nrg 300 sub sgn 0 floor & & .shootval mult store
.strvenom dup *.shoot sub sgn abs *.eyef 0 sub sgn 0 floor *.refxpos *.refveldx *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div add *.refypos *.refvelup *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div sub dist 650 sub sgn - 0 floor & *.robage 1 sub 1 add sgn 0 floor & *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & - ++ & *.refshell 50 sub 1 add sgn 0 floor *.refbody 100 sub sgn 0 floor | *.threatMode 2 & 0 sub sgn abs | & *.refeye *.myeye sub sgn abs - ++ *.refshoot *.myshoot sub sgn abs - ++ & *.reftie *.myties sub sgn abs - ++ & *.refup *.myup sub sgn abs - ++ & *.refdn *.mydn sub sgn abs - ++ & *.refsx *.mysx sub sgn abs - ++ & *.refdx *.mydx sub sgn abs - ++ & *.refaimsx *.myaimsx sub sgn abs - ++ & *.refaimdx *.myaimdx sub sgn abs - ++ & *.in1 3694 sub sgn abs - ++ *.in2 7505 sub sgn abs - ++ & *.in3 29703 sub sgn abs - ++ & *.in4 9586 sub sgn abs - ++ & *.in5 31105 sub sgn abs - ++ & & *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | *.robage 1 sub sgn - 0 floor | *.body 50 sub sgn - 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | - ++ & *.waste 100 sub 1 sub sgn - 0 floor & *.nrg 300 sub sgn 0 floor & & .shoot mult store
10000 dup *.shootval sub sgn abs *.eyef 0 sub sgn 0 floor *.refxpos *.refveldx *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div add *.refypos *.refvelup *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div sub dist 650 sub sgn - 0 floor & *.robage 1 sub 1 add sgn 0 floor & *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & - ++ & *.refshell 50 sub 1 add sgn 0 floor *.refbody 100 sub sgn 0 floor | *.threatMode 2 & 0 sub sgn abs | & *.refeye *.myeye sub sgn abs - ++ *.refshoot *.myshoot sub sgn abs - ++ & *.reftie *.myties sub sgn abs - ++ & *.refup *.myup sub sgn abs - ++ & *.refdn *.mydn sub sgn abs - ++ & *.refsx *.mysx sub sgn abs - ++ & *.refdx *.mydx sub sgn abs - ++ & *.refaimsx *.myaimsx sub sgn abs - ++ & *.refaimdx *.myaimdx sub sgn abs - ++ & *.in1 3694 sub sgn abs - ++ *.in2 7505 sub sgn abs - ++ & *.in3 29703 sub sgn abs - ++ & *.in4 9586 sub sgn abs - ++ & *.in5 31105 sub sgn abs - ++ & & *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | *.robage 1 sub sgn - 0 floor | *.body 50 sub sgn - 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | - ++ & *.waste 100 sub 1 sub sgn - 0 floor & *.nrg 300 sub sgn 0 floor & & .shootval mult store
*.body *.minBody 2 mult sub 10 mult dup *.fdbody sub sgn abs *.body *.minBody 2 mult sub sgn 0 floor *.nrg 25000 sub sgn - 0 floor & *.threatMode 2 & 0 sub sgn abs - ++ & & .fdbody mult store
*.body 10 sub 10 mult 0 floor dup *.fdbody sub sgn abs *.nrg 500 sub sgn - 0 floor & .fdbody mult store
100 dup *.strbody sub sgn abs *.nrg 25000 sub sgn 0 floor *.threatMode 2 & 0 sub sgn abs *.nrg 1500 sub sgn 0 floor & | & .strbody mult store
30 dup *.repro sub sgn abs *.body *.minBody sub sgn 0 floor *.nrg 300 sub sgn 0 floor & *.nrg *.reproEnergy sub sgn 0 floor & *.pwaste 10000 sub 1 sub sgn - 0 floor & *.robage 2 sub 1 add sgn 0 floor & *.reproTimer 0 sub 1 sub sgn - 0 floor *.nrg 25000 sub sgn 0 floor | & & .repro mult store
*.robage dup *.reproducedLastCycle sub sgn abs *.repro 0 sub sgn 0 floor & .reproducedLastCycle mult store
.reproTimer *.reproTimer 0 sub sgn 0 floor *.nrg 300 sub sgn 0 floor & mult dec
*.reproTimerMax dup *.reproTimer sub sgn abs *.repro 0 sub sgn 0 floor & .reproTimer mult store
32000 rnd dup *.tie sub sgn abs *.eyef 27 sub sgn 0 floor *.refeye *.myeye sub sgn abs - ++ *.refshoot *.myshoot sub sgn abs - ++ & *.reftie *.myties sub sgn abs - ++ & *.refup *.myup sub sgn abs - ++ & *.refdn *.mydn sub sgn abs - ++ & *.refsx *.mysx sub sgn abs - ++ & *.refdx *.mydx sub sgn abs - ++ & *.refaimsx *.myaimsx sub sgn abs - ++ & *.refaimdx *.myaimdx sub sgn abs - ++ & *.in1 3694 sub sgn abs - ++ *.in2 7505 sub sgn abs - ++ & *.in3 29703 sub sgn abs - ++ & *.in4 9586 sub sgn abs - ++ & *.in5 31105 sub sgn abs - ++ & & *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | *.robage 1 sub sgn - 0 floor | *.body 50 sub sgn - 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | - ++ & *.tiepres 0 sub sgn abs - ++ *.tiepres 0 sub sgn 0 floor *.tieNumAfter *.tiepres sub sgn abs - ++ & *.numties 0 sub sgn 0 floor *.trefshell 0 sub sgn abs - ++ & *.trefeye 0 sub sgn abs - ++ & *.trefshoot 0 sub sgn abs - ++ & *.trefup 0 sub sgn abs - ++ & *.trefdn 0 sub sgn abs - ++ & *.trefsx 0 sub sgn abs - ++ & *.trefdx 0 sub sgn abs - ++ & *.tmemval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & *.trefeye *.myeye sub sgn abs - ++ *.trefshoot *.myshoot sub sgn abs - ++ & *.trefup *.myup sub sgn abs - ++ & *.trefdn *.mydn sub sgn abs - ++ & *.trefsx *.mysx sub sgn abs - ++ & *.trefdx *.mydx sub sgn abs - ++ & *.trefaimsx *.myaimsx sub sgn abs - ++ & *.trefaimdx *.myaimdx sub sgn abs - ++ & *.robage 1 sub sgn - 0 floor | *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | | & *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & - ++ *.trefeye *.myeye sub sgn abs - ++ *.trefshoot *.myshoot sub sgn abs - ++ & *.trefup *.myup sub sgn abs - ++ & *.trefdn *.mydn sub sgn abs - ++ & *.trefsx *.mysx sub sgn abs - ++ & *.trefdx *.mydx sub sgn abs - ++ & *.trefaimsx *.myaimsx sub sgn abs - ++ & *.trefaimdx *.myaimdx sub sgn abs - ++ & *.robage 1 sub sgn - 0 floor | *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | | & | & *.robage 1 sub sgn 0 floor & & .tie mult store
*.tie dup *.tienum sub sgn abs *.tie 0 sub sgn abs & .tienum mult store
*.refxpos *.refveldx *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div add *.refypos *.refvelup *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div sub angle - *.aim add dup *.aimshoot sub sgn abs *.refeye *.myeye sub sgn abs - ++ *.refshoot *.myshoot sub sgn abs - ++ & *.reftie *.myties sub sgn abs - ++ & *.refup *.myup sub sgn abs - ++ & *.refdn *.mydn sub sgn abs - ++ & *.refsx *.mysx sub sgn abs - ++ & *.refdx *.mydx sub sgn abs - ++ & *.refaimsx *.myaimsx sub sgn abs - ++ & *.refaimdx *.myaimdx sub sgn abs - ++ & *.in1 3694 sub sgn abs - ++ *.in2 7505 sub sgn abs - ++ & *.in3 29703 sub sgn abs - ++ & *.in4 9586 sub sgn abs - ++ & *.in5 31105 sub sgn abs - ++ & & *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | *.robage 1 sub sgn - 0 floor | *.body 50 sub sgn - 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | - ++ *.shoot 0 sub sgn abs *.vshoot 0 sub sgn abs | & *.waste 100 sub sgn - 0 floor & *.nrg 300 sub sgn 0 floor & & .aimshoot mult store
*.refxpos *.refveldx *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div add *.refypos *.refvelup *.refxpos *.refveldx *.refxpos *.refypos dist mult 39 div add *.refypos *.refvelup *.refxpos *.refypos dist mult 39 div sub dist mult 39 div sub angle - *.aim sub dup *.aimshoot sub sgn abs *.refeye *.myeye sub sgn abs - ++ *.refshoot *.myshoot sub sgn abs - ++ & *.reftie *.myties sub sgn abs - ++ & *.refup *.myup sub sgn abs - ++ & *.refdn *.mydn sub sgn abs - ++ & *.refsx *.mysx sub sgn abs - ++ & *.refdx *.mydx sub sgn abs - ++ & *.refaimsx *.myaimsx sub sgn abs - ++ & *.refaimdx *.myaimdx sub sgn abs - ++ & *.in1 3694 sub sgn abs - ++ *.in2 7505 sub sgn abs - ++ & *.in3 29703 sub sgn abs - ++ & *.in4 9586 sub sgn abs - ++ & *.in5 31105 sub sgn abs - ++ & & *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | *.robage 1 sub sgn - 0 floor | *.body 50 sub sgn - 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | *.shoot 0 sub sgn abs *.vshoot 0 sub sgn abs | & *.nrg 300 sub sgn 0 floor & & .aimshoot mult store
0 dup *.tieloc sub sgn abs *.tie 0 sub sgn abs - ++ *.tieNumAfter 0 sub sgn abs - ++ & *.robage 1 sub 1 sub sgn - 0 floor | *.tieNumAfter *.tiepres sub sgn abs *.tie 0 sub sgn abs | *.trefeye *.myeye sub sgn abs - ++ *.trefshoot *.myshoot sub sgn abs - ++ & *.trefup *.myup sub sgn abs - ++ & *.trefdn *.mydn sub sgn abs - ++ & *.trefsx *.mysx sub sgn abs - ++ & *.trefdx *.mydx sub sgn abs - ++ & *.trefaimsx *.myaimsx sub sgn abs - ++ & *.trefaimdx *.myaimdx sub sgn abs - ++ & *.robage 1 sub sgn - 0 floor | *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | | *.tie 0 sub sgn abs - ++ *.numties 0 sub sgn abs | *.refeye *.myeye sub sgn abs - ++ *.refshoot *.myshoot sub sgn abs - ++ & *.reftie *.myties sub sgn abs - ++ & *.refup *.myup sub sgn abs - ++ & *.refdn *.mydn sub sgn abs - ++ & *.refsx *.mysx sub sgn abs - ++ & *.refdx *.mydx sub sgn abs - ++ & *.refaimsx *.myaimsx sub sgn abs - ++ & *.refaimdx *.myaimdx sub sgn abs - ++ & *.in1 3694 sub sgn abs - ++ *.in2 7505 sub sgn abs - ++ & *.in3 29703 sub sgn abs - ++ & *.in4 9586 sub sgn abs - ++ & *.in5 31105 sub sgn abs - ++ & & *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | *.robage 1 sub sgn - 0 floor | *.body 50 sub sgn - 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | | & | *.tieloc 0 sub sgn abs - ++ | & .tieloc mult store
-1000 dup *.tieval sub sgn abs *.tie 0 sub sgn abs *.tieNumAfter 0 sub sgn 0 floor | *.robage 1 sub sgn 0 floor & *.tieNumAfter *.tiepres sub sgn abs - ++ *.tie 0 sub sgn abs - ++ & *.trefeye *.myeye sub sgn abs - ++ *.trefshoot *.myshoot sub sgn abs - ++ & *.trefup *.myup sub sgn abs - ++ & *.trefdn *.mydn sub sgn abs - ++ & *.trefsx *.mysx sub sgn abs - ++ & *.trefdx *.mydx sub sgn abs - ++ & *.trefaimsx *.myaimsx sub sgn abs - ++ & *.trefaimdx *.myaimdx sub sgn abs - ++ & *.robage 1 sub sgn - 0 floor | *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | - ++ & *.numties 0 sub sgn 0 floor *.trefshell 0 sub sgn abs - ++ & *.trefeye 0 sub sgn abs - ++ & *.trefshoot 0 sub sgn abs - ++ & *.trefup 0 sub sgn abs - ++ & *.trefdn 0 sub sgn abs - ++ & *.trefsx 0 sub sgn abs - ++ & *.trefdx 0 sub sgn abs - ++ & *.tmemval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & *.refnrg 250 sub sgn - 0 floor | & *.tie 0 sub sgn abs *.numties 0 sub sgn abs - ++ & *.refeye *.myeye sub sgn abs - ++ *.refshoot *.myshoot sub sgn abs - ++ & *.reftie *.myties sub sgn abs - ++ & *.refup *.myup sub sgn abs - ++ & *.refdn *.mydn sub sgn abs - ++ & *.refsx *.mysx sub sgn abs - ++ & *.refdx *.mydx sub sgn abs - ++ & *.refaimsx *.myaimsx sub sgn abs - ++ & *.refaimdx *.myaimdx sub sgn abs - ++ & *.in1 3694 sub sgn abs - ++ *.in2 7505 sub sgn abs - ++ & *.in3 29703 sub sgn abs - ++ & *.in4 9586 sub sgn abs - ++ & *.in5 31105 sub sgn abs - ++ & & *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | *.robage 1 sub sgn - 0 floor | *.body 50 sub sgn - 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | - ++ & *.threatMode 4 & 0 sub sgn abs - ++ *.trefbody 100 sub 1 add sgn 0 floor | & *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | & & .tieval mult store

Hold on, it's too long to fit in one post.
« Last Edit: May 13, 2014, 03:17:43 PM by Botsareus »

Offline Trafalgar

  • Bot Destroyer
  • ***
  • Posts: 122
    • View Profile
Guardian v0.9 (F1)(Trafalgar)-15.07.07
« Reply #1 on: July 15, 2007, 06:14:16 PM »
Here's the rest of the bot:

Code: [Select]
-1 dup *.tieloc sub sgn abs *.tie 0 sub sgn abs *.tieNumAfter 0 sub sgn 0 floor | *.robage 1 sub sgn 0 floor & *.tieNumAfter *.tiepres sub sgn abs - ++ *.tie 0 sub sgn abs - ++ & *.trefeye *.myeye sub sgn abs - ++ *.trefshoot *.myshoot sub sgn abs - ++ & *.trefup *.myup sub sgn abs - ++ & *.trefdn *.mydn sub sgn abs - ++ & *.trefsx *.mysx sub sgn abs - ++ & *.trefdx *.mydx sub sgn abs - ++ & *.trefaimsx *.myaimsx sub sgn abs - ++ & *.trefaimdx *.myaimdx sub sgn abs - ++ & *.robage 1 sub sgn - 0 floor | *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | - ++ & *.numties 0 sub sgn 0 floor *.trefshell 0 sub sgn abs - ++ & *.trefeye 0 sub sgn abs - ++ & *.trefshoot 0 sub sgn abs - ++ & *.trefup 0 sub sgn abs - ++ & *.trefdn 0 sub sgn abs - ++ & *.trefsx 0 sub sgn abs - ++ & *.trefdx 0 sub sgn abs - ++ & *.tmemval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & *.refnrg 250 sub sgn - 0 floor | & *.tie 0 sub sgn abs *.numties 0 sub sgn abs - ++ & *.refeye *.myeye sub sgn abs - ++ *.refshoot *.myshoot sub sgn abs - ++ & *.reftie *.myties sub sgn abs - ++ & *.refup *.myup sub sgn abs - ++ & *.refdn *.mydn sub sgn abs - ++ & *.refsx *.mysx sub sgn abs - ++ & *.refdx *.mydx sub sgn abs - ++ & *.refaimsx *.myaimsx sub sgn abs - ++ & *.refaimdx *.myaimdx sub sgn abs - ++ & *.in1 3694 sub sgn abs - ++ *.in2 7505 sub sgn abs - ++ & *.in3 29703 sub sgn abs - ++ & *.in4 9586 sub sgn abs - ++ & *.in5 31105 sub sgn abs - ++ & & *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | *.robage 1 sub sgn - 0 floor | *.body 50 sub sgn - 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | - ++ & *.threatMode 4 & 0 sub sgn abs - ++ *.trefbody 100 sub 1 add sgn 0 floor | & *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | & & .tieloc mult store
10000 dup *.tieval sub sgn abs *.tie 0 sub sgn abs *.tieNumAfter 0 sub sgn 0 floor | *.robage 1 sub sgn 0 floor & *.tieNumAfter *.tiepres sub sgn abs - ++ *.tie 0 sub sgn abs - ++ & *.trefeye *.myeye sub sgn abs - ++ *.trefshoot *.myshoot sub sgn abs - ++ & *.trefup *.myup sub sgn abs - ++ & *.trefdn *.mydn sub sgn abs - ++ & *.trefsx *.mysx sub sgn abs - ++ & *.trefdx *.mydx sub sgn abs - ++ & *.trefaimsx *.myaimsx sub sgn abs - ++ & *.trefaimdx *.myaimdx sub sgn abs - ++ & *.robage 1 sub sgn - 0 floor | *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | - ++ & *.numties 0 sub sgn 0 floor *.trefshell 0 sub sgn abs - ++ & *.trefeye 0 sub sgn abs - ++ & *.trefshoot 0 sub sgn abs - ++ & *.trefup 0 sub sgn abs - ++ & *.trefdn 0 sub sgn abs - ++ & *.trefsx 0 sub sgn abs - ++ & *.trefdx 0 sub sgn abs - ++ & *.tmemval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & - ++ *.threatMode 4 & 0 sub sgn abs *.trefbody 100 sub sgn - 0 floor & | *.refnrg 250 sub 1 add sgn 0 floor & & *.tie 0 sub sgn abs *.numties 0 sub sgn abs - ++ & *.refeye *.myeye sub sgn abs - ++ *.refshoot *.myshoot sub sgn abs - ++ & *.reftie *.myties sub sgn abs - ++ & *.refup *.myup sub sgn abs - ++ & *.refdn *.mydn sub sgn abs - ++ & *.refsx *.mysx sub sgn abs - ++ & *.refdx *.mydx sub sgn abs - ++ & *.refaimsx *.myaimsx sub sgn abs - ++ & *.refaimdx *.myaimdx sub sgn abs - ++ & *.in1 3694 sub sgn abs - ++ *.in2 7505 sub sgn abs - ++ & *.in3 29703 sub sgn abs - ++ & *.in4 9586 sub sgn abs - ++ & *.in5 31105 sub sgn abs - ++ & & *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | *.robage 1 sub sgn - 0 floor | *.body 50 sub sgn - 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | - ++ & *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & - ++ & | & *.tieval 10000 sub sgn abs & & .tieval mult store
.strvenom dup *.tieloc sub sgn abs *.tie 0 sub sgn abs *.tieNumAfter 0 sub sgn 0 floor | *.robage 1 sub sgn 0 floor & *.tieNumAfter *.tiePres sub sgn abs - ++ *.tie 0 sub sgn abs - ++ & *.trefeye *.myeye sub sgn abs - ++ *.trefshoot *.myshoot sub sgn abs - ++ & *.trefup *.myup sub sgn abs - ++ & *.trefdn *.mydn sub sgn abs - ++ & *.trefsx *.mysx sub sgn abs - ++ & *.trefdx *.mydx sub sgn abs - ++ & *.trefaimsx *.myaimsx sub sgn abs - ++ & *.trefaimdx *.myaimdx sub sgn abs - ++ & *.robage 1 sub sgn - 0 floor | *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | - ++ & *.numties 0 sub sgn 0 floor *.trefshell 0 sub sgn abs - ++ & *.trefeye 0 sub sgn abs - ++ & *.trefshoot 0 sub sgn abs - ++ & *.trefup 0 sub sgn abs - ++ & *.trefdn 0 sub sgn abs - ++ & *.trefsx 0 sub sgn abs - ++ & *.trefdx 0 sub sgn abs - ++ & *.tmemval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & - ++ *.threatMode 4 & 0 sub sgn abs *.trefbody 100 sub sgn - 0 floor & | *.refnrg 250 sub 1 add sgn 0 floor & & *.tie 0 sub sgn abs *.numties 0 sub sgn abs - ++ & *.refeye *.myeye sub sgn abs - ++ *.refshoot *.myshoot sub sgn abs - ++ & *.reftie *.myties sub sgn abs - ++ & *.refup *.myup sub sgn abs - ++ & *.refdn *.mydn sub sgn abs - ++ & *.refsx *.mysx sub sgn abs - ++ & *.refdx *.mydx sub sgn abs - ++ & *.refaimsx *.myaimsx sub sgn abs - ++ & *.refaimdx *.myaimdx sub sgn abs - ++ & *.in1 3694 sub sgn abs - ++ *.in2 7505 sub sgn abs - ++ & *.in3 29703 sub sgn abs - ++ & *.in4 9586 sub sgn abs - ++ & *.in5 31105 sub sgn abs - ++ & & *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | *.robage 1 sub sgn - 0 floor | *.body 50 sub sgn - 0 floor *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & & | - ++ & *.refeye 0 sub sgn abs - ++ *.refshoot 0 sub sgn abs - ++ & *.refup 0 sub sgn abs - ++ & *.refdn 0 sub sgn abs - ++ & *.refsx 0 sub sgn abs - ++ & *.refdx 0 sub sgn abs - ++ & *.memval 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 1 sub sgn 0 floor & *.refvenom 0 sub sgn abs - ++ & *.refpoison 0 sub sgn abs - ++ & *.refshell 0 sub sgn abs - ++ & *.refkills 0 sub sgn abs - ++ & *.reproducedLastCycle *.robage sub abs 2 sub sgn 0 floor & - ++ *.threatMode 4 & 0 sub sgn abs | & | & *.tieloc .strvenom sub sgn abs & & .tieloc mult store
100 dup *.sharenrg sub sgn abs *.tie 0 sub sgn abs - ++ *.tieNumAfter *.tiepres sub sgn abs - ++ & *.numties 1 sub sgn abs - ++ & *.trefeye *.myeye sub sgn abs - ++ *.trefshoot *.myshoot sub sgn abs - ++ & *.trefup *.myup sub sgn abs - ++ & *.trefdn *.mydn sub sgn abs - ++ & *.trefsx *.mysx sub sgn abs - ++ & *.trefdx *.mydx sub sgn abs - ++ & *.trefaimsx *.myaimsx sub sgn abs - ++ & *.trefaimdx *.myaimdx sub sgn abs - ++ & *.robage 1 sub sgn - 0 floor | *.reproducedLastCycle *.robage sub abs 2 sub 1 sub sgn - 0 floor | - ++ & & .sharenrg mult store
*.tiepres dup *.tienum sub sgn abs *.tie 0 sub sgn abs - ++ *.tienum *.tiepres sub sgn abs & & .tienum mult store
*.tienum dup *.tieNumAfter sub sgn abs .tieNumAfter mult store
99 dup *.repro sub sgn abs *.pwaste 10000 sub sgn 0 floor & .repro mult store
100 dup *.strbody sub sgn abs *.pwaste 10000 sub sgn 0 floor & .strbody mult store
*.genes dup *.delgene sub sgn abs *.thisgene 1 sub sgn abs - ++ *.genes 2 sub 1 add sgn 0 floor & *.delgeneDecChecked *.genes sub sgn abs - ++ & & .delgene mult store
*.genes 1 add dup *.delgene sub sgn abs *.thisgene 1 sub sgn abs - ++ *.genes 2 sub 1 add sgn 0 floor & *.delgeneDecChecked *.genes sub sgn abs & & .delgene mult store
0 dup *.delgeneDecChecked sub sgn abs *.thisgene 1 sub sgn abs - ++ *.genes 2 sub 1 add sgn 0 floor & *.delgene *.genes sub sgn abs - ++ & & .delgeneDecChecked mult store
*.genes dup *.delgeneDecChecked sub sgn abs *.thisgene 1 sub sgn abs - ++ *.genes 2 sub 1 add sgn 0 floor & *.delgene *.genes 1 add sub sgn abs - ++ & & .delgeneDecChecked mult store
0 dup *.delgeneDecChecked sub sgn abs *.genes 1 sub sgn abs - ++ & .delgeneDecChecked mult store
*.thisgene dup *.mkvirus sub sgn abs .mkvirus mult store
500 *.slime sub dup *.mkslime sub sgn abs *.genes 1 sub sgn abs - ++ *.threatMode 4 & 0 sub sgn abs & *.slime 500 sub sgn - 0 floor & *.nrg 1000 sub 1 add sgn 0 floor & & .mkslime mult store
250 *.slime sub dup *.mkslime sub sgn abs *.genes 1 sub sgn abs - ++ *.threatMode 4 & 0 sub sgn abs & *.slime 250 sub sgn - 0 floor & *.nrg 700 sub 1 add sgn 0 floor & *.nrg 1000 sub sgn - 0 floor & & .mkslime mult store
100 *.slime sub dup *.mkslime sub sgn abs *.genes 1 sub sgn abs - ++ *.threatMode 4 & 0 sub sgn abs & *.slime 100 sub sgn - 0 floor & *.nrg 400 sub 1 add sgn 0 floor & *.nrg 700 sub sgn - 0 floor & & .mkslime mult store
500 *.poison sub dup *.strpoison sub sgn abs *.genes 1 sub sgn abs - ++ *.poison 500 sub sgn - 0 floor & *.nrg 2 mult 500 *.poison sub sub sgn 0 floor & *.nrg 1500 sub sgn 0 floor & & .strpoison mult store
*.nrg 2 div dup *.strpoison sub sgn abs *.genes 1 sub sgn abs - ++ *.poison 500 sub sgn - 0 floor & *.nrg 2 mult 500 *.poison sub sub 1 sub sgn - 0 floor & *.nrg 1500 sub sgn 0 floor & & .strpoison mult store
100 *.shell sub dup *.mkshell sub sgn abs *.genes 1 sub sgn abs - ++ *.shell 100 sub sgn - 0 floor & *.nrg 2 mult 100 *.shell sub sub sgn 0 floor & *.nrg 1500 sub sgn 0 floor & & .mkshell mult store
*.nrg 2 div dup *.mkshell sub sgn abs *.genes 1 sub sgn abs - ++ *.shell 100 sub sgn - 0 floor & *.nrg 2 mult 100 *.shell sub sub 1 sub sgn - 0 floor & *.nrg 1500 sub sgn 0 floor & & .mkshell mult store
.eye5 dup *.ploc sub sgn abs *.genes 1 sub sgn abs - ++ *.nrg 300 sub sgn 0 floor & & .ploc mult store
-4 dup *.shoot sub sgn abs *.waste 100 sub sgn 0 floor *.genes 1 sub sgn abs - ++ & *.nrg 300 sub sgn 0 floor & & .shoot mult store
*.waste dup *.shootval sub sgn abs *.waste 100 sub sgn 0 floor *.genes 1 sub sgn abs - ++ & *.nrg 300 sub sgn 0 floor & & .shootval mult store
0 dup *.mkslime sub sgn abs *.mkslime 500 sub sgn 0 floor *.mkslime 500 *.slime sub sub sgn 0 floor | *.mkslime 0 sub sgn - 0 floor | & .mkslime mult store
0 dup *.mkshell sub sgn abs *.mkshell 100 sub sgn 0 floor *.mkshell 100 *.shell sub sub sgn 0 floor | *.mkshell 0 sub sgn - 0 floor | & .mkshell mult store
0 dup *.strvenom sub sgn abs *.strvenom 500 sub sgn 0 floor *.strvenom 500 *.venom sub sub sgn 0 floor | *.strvenom 0 sub sgn - 0 floor | & .strvenom mult store
0 dup *.strpoison sub sgn abs *.strpoison 500 sub sgn 0 floor *.strpoison 500 *.poison sub sub sgn 0 floor *.strpoison 0 sub sgn - 0 floor | | & .strpoison mult store
0 dup *.fixpos sub sgn abs .fixpos mult store
0 dup *.repro sub sgn abs *.genes 1 sub sgn 0 floor & .repro mult store
0 dup *.shang sub sgn abs *.nrg 300 sub sgn 0 floor & .shang mult store
stop

Here's some more information about that, if you're curious.

A sample of the bot script as I wrote it (from the beginning of it, after the defs):
Code: [Select]
reproEnergy when (reproEnergy==0) = 700
closingRate when (closingRate==0) = rnd(10)
reproTimerMax when ((reproTimerMax>0) and (robage==1)) = floor(reproTimerMax-100,100)
reproTimerMax when (reproTimerMax==0) = 1500
minBody when (minBody==0) = reproTimerMax/10
threatMode when (((eyef>0) and (refkills>0) and (not targFriendly)) or ((tiepres==tienum) and (trefkills>0) and (not tieFriendly)) or (shang!=0)) = threatMode or 1
threatMode when ((shflav== -6) and (shang!=0)) = threatMode or 2

and so on. (Note that I defined targFriendly and tieFriendly earlier in the script, so PyBot expands them to what I defined them as)

tieFriendly is:
Code: [Select]
define tieFriendly: (((trefeye==myeye) and (trefshoot==myshoot) and (trefup==myup) and (trefdn==mydn) and (trefsx==mysx) and (trefdx==mydx) and (trefaimsx==myaimsx) and (trefaimdx==myaimdx)) or (robage<1) or (abs(reproducedLastCycle-robage)<=2))

This bot is capable of predicting where to aim in order to hit a moving opponent (or if it itself is moving). It also can fly in a circle around a target, but that screws up its aiming (it can't account for or see acceleration at the moment).

It enables and disables various capabilities or commands based on what it has observed - for example, if it is hit by body shots, or sees another friendly bot that has been hit by one, it will keep its body amount higher than it otherwise would. Essentially, any friendly bot observing a condition will transmit the information to any other bot that gets near it. This extends to using slime if there are viruses in the environment, and having circle-strafing turned off until an enemy gets a kill or it gets hit with a shot. (To save energy if the enemy isn't even capable of harming the bot)

It uses all five out variables for conspec recognition, and they can additionally broadcast different values if the bot is currently infected by a virus. It also checks almost every available and useful ref var for conspec recognition, and veggie recognition.

Every eye has a 360 degree sight range, and all are centered on the same position. It randomly chooses which eye to use, and if that eye's width or angle are changed by something else (poison, venum, or an info shot), it switches to another eye (plus it tries to fix the broken eye). It won't be able to detect if you jammed eyef with poison, though. But if you could do that, you could just hit it with an instakill info shot, so I figured it doesn't matter too much.

It always keeps its aim at 315, and maneuvers by relative positions and velocities. This means it can actually tell what is up and what is down, and left and right, which is why it is possible to predict movement without sine, cosine, atan2, or an angle-to-x-and-y function.

It chooses between instakill info shots and -6 and -1 shots based on distance to target (actually distance to where the target is predicted to be when the shot arrives), and based on the perceived threat from the target. It powers up the shots based on the distance too. It won't use an instakill info shot if it's out of range for that (since it can't be powered up).

It also suicides if permanent waste reaches 10000, but that shouldn't happen in a league match. (It's suppose to do a repro 99 and then suicide with strbody, but apparently repro consumes energy and reproduction happens later, since this just instakills the bot without any reproduction. I'd have to change it to fix it, but it's not really important for league matches)

It also produces shell and poison, if it has enough energy. (The poison blinds eye5 currently, if it hits)

It also has checks in place to try to stop instakill shots (by reducing mkshell, strpoison, strvenom, etc, if they are high), but that doesn't seem to work, since they are set by the shot, and then acted on (killing the bot), without any chance for the bot to see or fix it first.

It also tries to prevent virus-triggered repro (e.g. from Etch), but that probably doesn't work either, if the virus gene runs after the real gene.
« Last Edit: July 16, 2007, 11:50:34 PM by Trafalgar »

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Guardian v0.9 (F1)(Trafalgar)-15.07.07
« Reply #2 on: July 16, 2007, 02:51:24 AM »
That's one disgusting monster you have there.

I agree with the info shots.  It's probably a bit too powerful to instantly kill your opponent.

Offline abyaly

  • Bot Destroyer
  • ***
  • Posts: 363
    • View Profile
Guardian v0.9 (F1)(Trafalgar)-15.07.07
« Reply #3 on: July 16, 2007, 09:14:55 AM »
My computer is too slow to run matches with that bot >.>
Lancre operated on the feudal system, which was to say, everyone feuded all
the time and handed on the fight to their descendants.
        -- (Terry Pratchett, Carpe Jugulum)

Offline Trafalgar

  • Bot Destroyer
  • ***
  • Posts: 122
    • View Profile
Guardian v0.9 (F1)(Trafalgar)-15.07.07
« Reply #4 on: July 16, 2007, 12:00:23 PM »
Quote from: abyaly
My computer is too slow to run matches with that bot >.>

Ouch.

I'm using an Athlon 64 X2 4600+. The slowest match is it vs Etch. That takes forever.

Offline Trafalgar

  • Bot Destroyer
  • ***
  • Posts: 122
    • View Profile
Guardian v0.9 (F1)(Trafalgar)-15.07.07
« Reply #5 on: July 16, 2007, 12:59:01 PM »
Here's what I actually wrote for the bot's script (which is converted/compiled/translated to the .txt version). # indicates a comment.

This should hopefully be a lot more readable, and includes some comments. If you have any questions about what anything does, or why it works, feel free to ask.
Code: [Select]
#Guardian bot by Trafalgar
#The compiled version of this may or may not be somewhat readable.

# These three lines are directives to the compiler/converter. The first one is used, but the second and third are disabled by the extra #. The first one keeps the lines here from being put in comments in the output .txt. The second line would replace the defs with their numbers in the output .txt, which would make it even more unreadable. The third one would remove all endlines, which, as you might imagine, would make it just about impossible to read.
#omit-original-code
##inline-defs
##combine-lines

#Debug stuff. These are disabled if they have a # or #~ before them - I uncomment them and the code that sets them en masse when I need to check what the bot is seeing or doing. There are several blocks of debug variables like this.
#Birth at T tick (recorded in ageComp), where T is the value stored in reproducedLastCycle
#~ def eyeComp at 1000 #1 at T+2
#~ def tieComp at 999 #1 at T+2
#~ def virusComp at 998 #1 at T
#~ def shootComp at 997 #1 at T
#~ def moveComp at 996 #1 at T+2
#~ def aimComp at 995 #1 at T
#~ def inComp at 994 #0
#~ def ageComp at 993
#~ def lastCycle at 992
#~ def friendlyComp at 991 #1 at T

#Child is blind until T+3, when all refs become available.
#At T+2 the parent's eyes see the child. At that time, the only refs which are set are refbody, refnrg, refup, refdx, refeye, reftie, and possibly refdn and refsx.
#At T+3 all the refs on the parent become available as well.
#This may or may not also happen when two bots approach each other?
#~ def refmultiRec at 921
#~ def refshellRec at 922
#~ def refbodyRec at 923 #Readable at T+2
#~ def refxposRec at 924
#~ def refyposRec at 925
#~ def refvelRec at 926
#~ def refvelupRec at 927
#~ def refvelscalarRec at 928
#~ def refvelsxRec at 929
#~ def refveldxRec at 930
#~ def refveldnRec at 931
#~ def refnrgRec at 932 #Readable at T+2
#~ def refageRec at 933
#~ def refpoisonRec at 934
#~ def refvenomRec at 935
#~ def refkillsRec at 936
#~ def reffixedRec at 937
#~ def refupRec at 938 #Readable at T+2
#~ def refsxRec at 939
#~ def refdxRec at 940 #Readable at T+2
#~ def refdnRec at 941
#~ def refaimdxRec at 942
#~ def refaimsxRec at 943
#~ def refshootRec at 945
#~ def refeyeRec at 946 #Readable (2) at T+2
#~ def reftieRec at 947 #26 at T+2 - why?
#~ def eyefRec at 948 #99 at T+2

#Debug (These ones are enabled, and written to, so if you check 987-990 you can see whether the bot thinks what it's seeing or tied to is a friendly, a veggie, or neither.)
def targFriendlyComp at 990
def targVeggieComp at 989
def tieFriendlyComp at 988
def tieVeggieComp at 987

#Normal
def tieNumAfter at 909

#Debug
#~ def teyeComp at 970
#~ def tshootComp at 969
#~ def tmoveComp at 968
#~ def taimComp at 967
#~ def tvirusComp at 966
#~ def tfriendlyComp at 965

#Debug
#~ def tieAfter at 910
#~ def tieLocAfter at 908
#~ def tieValAfter at 907
#~ def tiePresAfter at 906
#~ def delTieAfter at 905

#~ def shootRec at 904
#~ def shootvalRec at 903
#~ def venvalRec at 902
#~ def aimshootRec at 901

#~ def sxRec at 911
#~ def dnRec at 912
#~ def velsxRec at 913
#~ def veldnRec at 914

#Would have to be changed if we have both these and the ref debug vars enabled
#~ def lastMyXPos at 941
#~ def curMyXPos at 942
#~ def lastMyVelDX at 943
#~ def curMyVelDX at 944
#~ def lastMyYPos at 945
#~ def curMyYPos at 946
#~ def lastMyVelDn at 947
#~ def curMyVelDn at 948

#~ def lastRefXPos at 951
#~ def curRefXPos at 952
#~ def lastRefVelDX at 953
#~ def curRefVelDX at 954
#~ def lastRefYPos at 955
#~ def curRefYPos at 956
#~ def lastRefVelDn at 957
#~ def curRefVelDn at 958


#Debug
#~ def tieBefore at 960
#~ def tieNumBefore at 959
#~ def tieLocBefore at 958
#~ def tieValBefore at 957
#~ def tiePresBefore at 956
#~ def delTieBefore at 955


def delgeneDecChecked at 961
def reproducedLastCycle at 962
def reproTimer at 964
def minBody at 920

#Epigenetic 971-990
def reproEnergy at 980
def closingRate at 982
def reproTimerMax at 971
def threatMode at 985

if ():
define targFriendly: (((refeye==myeye) and (refshoot==myshoot) and (reftie==myties) and (refup==myup) and (refdn==mydn) and (refsx==mysx) and (refdx==mydx) and (refaimsx==myaimsx) and (refaimdx==myaimdx) and ((in1==3694) and (in2==7505) and (in3==29703) and (in4==9586) and (in5==31105))) or (abs(reproducedLastCycle-robage)<=2) or (robage<1) or ((body<50) and (targVeggie)))
define tieFriendly: (((trefeye==myeye) and (trefshoot==myshoot) and (trefup==myup) and (trefdn==mydn) and (trefsx==mysx) and (trefdx==mydx) and (trefaimsx==myaimsx) and (trefaimdx==myaimdx)) or (robage<1) or (abs(reproducedLastCycle-robage)<=2))
define targVeggie: ((refeye==0) and (refshoot==0) and (refup==0) and (refdn==0) and (refsx==0) and (refdx==0) and (memval==0) and (abs(reproducedLastCycle-robage)>1) and (refvenom==0) and (refpoison==0) and (refshell==0) and (refkills==0) and (abs(reproducedLastCycle-robage)>2))
define tieVeggie: ((numties>0) and (trefshell==0) and (trefeye==0) and (trefshoot==0) and (trefup==0) and (trefdn==0) and (trefsx==0) and (trefdx==0) and (tmemval==0) and (abs(reproducedLastCycle-robage)>2))

define targVirused: (((in1==8081) or (in2==25755) or (in3==22200) or (in4==25782) or (in5==315)) or (((robage%5)==0) and (memval>0) and (memval<30)))

define nextrefxpos: refxpos+((refveldx*dist(refxpos,refypos))/39)
define nextrefypos: refypos-((refvelup*dist(refxpos,refypos))/39)
define betternextrefxpos: refxpos+((refveldx*dist(nextrefxpos,nextrefypos))/39)
define betternextrefypos: refypos-((refvelup*dist(nextrefxpos,nextrefypos))/39)
define fixedangle: angle(betternextrefxpos, betternextrefypos)
define inrange1: (dist(betternextrefxpos, betternextrefypos)<480)
define inrange2: (dist(betternextrefxpos, betternextrefypos)<650)
define inrange3: (dist(betternextrefxpos, betternextrefypos)<800)
define inrange4: (dist(betternextrefxpos, betternextrefypos)<3200)
define range: (dist(betternextrefxpos, betternextrefypos))

define ifLeft: ((xpos-refxpos)<0)
define ifRight: ((xpos-refxpos)>=0)
define ifAbove: ((ypos-refypos)<0)
define ifBelow: ((ypos-refypos)>=0)
define targX: ((refxpos-500)+(ifAbove*1000))
define targY: ((refypos-500)+(ifRight*1000))
define targRange: (dist(targX,targY))

#Debug
#~ refmultiRec = refmulti
#~ refshellRec = refshell
#~ refbodyRec = refbody
#~ refxposRec = refxpos
#~ refyposRec = refypos
#~ refvelRec = refvel
#~ refvelupRec = refvelup
#~ refvelscalarRec = refvelscalar
#~ refvelsxRec = refvelsx
#~ refveldxRec = refveldx
#~ refveldnRec = refveldn
#~ refnrgRec = refnrg
#~ refageRec = refage
#~ refpoisonRec = refpoison
#~ refvenomRec = refvenom
#~ refkillsRec = refkills
#~ reffixedRec = reffixed
#~ refupRec = refup
#~ refsxRec = refsx
#~ refdxRec = refdx
#~ refdnRec = refdn
#~ refaimdxRec = refaimdx
#~ refaimsxRec = refaimsx
#~ refshootRec = refshoot
#~ refeyeRec = refeye
#~ reftieRec = reftie
#~ eyefRec = eyef

#disable-storecheck
reproEnergy when (reproEnergy==0) = 700
closingRate when (closingRate==0) = rnd(10)
reproTimerMax when ((reproTimerMax>0) and (robage==1)) = floor(reproTimerMax-100,100)
reproTimerMax when (reproTimerMax==0) = 1500
minBody when (minBody==0) = reproTimerMax/10
closingRate when (robage==0) = floor(ceil(closingRate+rnd(2)-1,30),1)
#enable-storecheck

threatMode when (((eyef>0) and (refkills>0) and (not targFriendly)) or ((tiepres==tienum) and (trefkills>0) and (not tieFriendly)) or (shang!=0)) = threatMode or 1
threatMode when ((shflav== -6) and (shang!=0)) = threatMode or 2
threatMode when (((eyef>0) and (targVirused)) or (genes>1)) = threatMode or 4
threatMode when ((memval!=0) and ((robage%5)!=0) and (targFriendly)) = threatMode or memval
#If we spot a virus-infected bot or veggie, or if we ourselves are virused, note virus-environment in the epigenetic memory. This will cause ourselves and all future descendants to produce slime for protection.


memloc when ((genes==1) and ((robage%5)==4) and (nrg>300)) = &vtimer
tmemloc when ((genes==1) and ((robage%5)==4) and (nrg>300))  = &vtimer
memloc when ((genes==1) and ((robage%5)!=4) and (nrg>300)) = &threatMode
tmemloc when ((genes==1) and ((robage%5)!=4) and (nrg>300))  = &threatMode

out1 when (genes==1) = 3694
out2 when (genes==1) = 7505
out3 when (genes==1) = 29703
out4 when (genes==1) = 9586
out5 when (genes==1) = 31105

out1 when ((genes>1) and (thisgene==1)) = 8081
out2 when ((genes>1) and (thisgene==1)) = 25755
out3 when ((genes>1) and (thisgene==1)) = 22200
out4 when ((genes>1) and (thisgene==1)) = 25782
out5 when ((genes>1) and (thisgene==1)) = 315

out1 when ((genes>1) and (thisgene>1) and (out1!=3694) and (out1!=8081)) = 7799
out2 when ((genes>1) and (thisgene>1) and (out2!=7505) and (out2!=25755)) = 901
out3 when ((genes>1) and (thisgene>1) and (out3!=29703) and (out3!=22200)) = 6876
out4 when ((genes>1) and (thisgene>1) and (out4!=9586) and (out4!=25782)) = 16558
out5 when ((genes>1) and (thisgene>1) and (out5!=31105) and (out5!=315)) = 2960

#This does three things:
#1. Sets focus eye to a random eye if it isn't set yet.
#2. If we're virus-infected or in an enemy bot, continually change it randomly.
#3. If the active eye's parameters are wrong (say, it's been blinded by poison or venom), switch to another eye.
focuseye when ((eye1width!=1221) or ((focuseye== -4 and ((eye1width!=1221) or (eye1dir!= -140))) or (focuseye== -3 and ((eye2width!=1221) or (eye2dir!= -105))) or (focuseye== -2 and ((eye3width!=1221) or (eye3dir!= -70))) or (focuseye== -1 and ((eye4width!=1221) or (eye4dir!= -35))) or (focuseye==0 and ((eye5width!=1221) or (eye5dir!=0))) or (focuseye==1 and ((eye6width!=1221) or (eye6dir!=35))) or (focuseye==2 and ((eye7width!=1221) or (eye7dir!=70))) or (focuseye==3 and ((eye8width!=1221) or (eye8dir!=105))) or (focuseye==4 and ((eye9width!=1221) or (eye9dir!=140))))) = (rnd(8)-4)

#Fix eye width and dir if non-infected
eye1width when (genes==1) = 1221
eye2width when (genes==1) = 1221
eye3width when (genes==1) = 1221
eye4width when (genes==1) = 1221
eye5width when (genes==1) = 1221
eye6width when (genes==1) = 1221
eye7width when (genes==1) = 1221
eye8width when (genes==1) = 1221
eye9width when (genes==1) = 1221

eye1dir when (genes==1) = -140
eye2dir when (genes==1) = -105
eye3dir when (genes==1) = -70
eye4dir when (genes==1) = -35
eye5dir when (genes==1) = 0
eye6dir when (genes==1) = 35
eye7dir when (genes==1) = 70
eye8dir when (genes==1) = 105
eye9dir when (genes==1) = 140

#Sarobage eye width and dir if infected
eye1width when (genes>1) = 1222
eye2width when (genes>1) = 1222
eye3width when (genes>1) = 1222
eye4width when (genes>1) = 1222
eye5width when (genes>1) = 1222
eye6width when (genes>1) = 1222
eye7width when (genes>1) = 1222
eye8width when (genes>1) = 1222
eye9width when (genes>1) = 1222

eye1dir when (genes>1) = 630
eye2dir when (genes>1) = 630
eye3dir when (genes>1) = 630
eye4dir when (genes>1) = 630
eye5dir when (genes>1) = 630
eye6dir when (genes>1) = 630
eye7dir when (genes>1) = 630
eye8dir when (genes>1) = 630
eye9dir when (genes>1) = 630

#Debug
#~ eyeComp = (refeye==myeye)
#~ tieComp = (reftie==myties)
#~ virusComp = ((memval==0) or (memval>=30))
#~ shootComp = (refshoot==myshoot)
#~ moveComp = ((refup==myup) and (refdn==mydn) and (refsx==mysx) and (refdx==mydx))
#~ aimComp = ((refaimsx==myaimsx) and (refaimdx==myaimdx))
#~ inComp = ((in1==3694) and (in2==7505) and (in3==29703) and (in4==9586) and (in5==31105))
#~ friendlyComp = targFriendly
#~ lastCycle = (robage)
#~ ageComp = (abs(reproducedLastCycle-robage)<=2) #962 *.robage sub abs 2 sub 1 sub sgn - 0 floor dup 993 sub sgn abs 993 mult store
#reproducedLastCycle = 962, 993 = ageComp
#Debug
#~ teyeComp = (trefeye==myeye)
#~ tshootComp = (trefshoot==myshoot)
#~ tmoveComp = (trefup==myup) and (trefdn==mydn) and (trefsx==mysx) and (trefdx==mydx)
#~ taimComp = (trefaimsx==myaimsx) and (trefaimdx==myaimdx)
#~ tvirusComp = ((tmemval==0) or (tmemval>=30))
#~ tfriendlyComp = tieFriendly

#Debug
#~ targFriendlyComp = (targFriendly)
#~ targVeggieComp = (targVeggie)
#~ tieFriendlyComp = (tieFriendly)
#~ tieVeggieComp = (tieVeggie)


#Fix aim
#disable-storecheck
setaim when (aim!=315) = 315
#enable-storecheck


#Theoretically:
#We are north of the enemy, and moving south at the same speed. refveldn will be 0. veldn will be positive. To escape them, we need it to be negative. (xpos-refxpos would be negative)
#We are north of the enemy, and moving north at the same speed. refveldn will be 0. veldn will be negative. To escape them, we need it to be (more) negative.
#We are south of the enemy, and moving south at the same speed. refveldn will be 0. veldn will be positive. To escape them, we need it to be positive.
#We are south of the enemy, and moving north at the same speed. refveldn will be 0. veldn will be negative. To escape them, we need it to be (more) positive.
#Conclusion: Our vel when fleeing should be determined by our relative position, not our or their velocity.

# Run away! (If the enemy is too close or if that's a friendly
dn when (((eyef >= 50) or (targFriendly)) and (robage>=1) and (nrg>300)) = sgn(ypos-refypos)*100
sx when (((eyef >= 50) or (targFriendly)) and (robage>=1) and (nrg>300)) = sgn(refxpos-xpos)*100
# We're in firing range - match speed
dn when (((numties==0) and (eyef >= 30) and (eyef < 60) and (not targFriendly)) and (robage>=1) and ((threatMode>0) and (not targVeggie)) and ((robage%4)!=0) and (nrg>300)) = (refveldn-veldn) + ((targY-ypos)/10)
sx when (((numties==0) and (eyef >= 30) and (eyef < 60) and (not targFriendly)) and (robage>=1) and ((threatMode>0) and (not targVeggie)) and ((robage%4)!=0) and (nrg>300)) = (-(refveldx-veldx)) + ((xpos-targX)/10)
dn when (((eyef >= 30) and (eyef < 60) and (not targFriendly)) and (robage>=1) and ((threatMode==0) or (targVeggie) or (nrg<=300)) and ((robage%4)!=0) and ((nrg>300) or (targVeggie))) = refveldn
sx when (((eyef >= 30) and (eyef < 60) and (not targFriendly)) and (robage>=1) and ((threatMode==0) or (targVeggie) or (nrg<=300)) and ((robage%4)!=0) and ((nrg>300) or (targVeggie))) = -refveldx

# We're chasing them - get closer
dn when (((numties==0) and (eyef > 0) and (eyef < 30) and (not targFriendly)) and (robage>=1) and ((threatMode>0) and (not targVeggie)) and ((robage%4)!=0) and (nrg>300)) = (refveldn-veldn) + ((targY-ypos)/10)
sx when (((numties==0) and (eyef > 0) and (eyef < 30) and (not targFriendly)) and (robage>=1) and ((threatMode>0) and (not targVeggie)) and ((robage%4)!=0) and (nrg>300)) = (-(refveldx-veldx)) + ((xpos-targX)/10)
dn when (((eyef > 0) and (eyef < 30) and (not targFriendly)) and (robage>=1) and ((threatMode==0) or (targVeggie)) and ((robage%4)!=0) and ((nrg>300) or (targVeggie) or (nrg<=300))) = refveldn + ((refypos-ypos)/closingRate)
sx when (((eyef > 0) and (eyef < 30) and (not targFriendly)) and (robage>=1) and ((threatMode==0) or (targVeggie)) and ((robage%4)!=0) and ((nrg>300) or (targVeggie) or (nrg<=300))) = (-refveldx) + ((xpos-refxpos)/closingRate)

#~ dnRec = dn
#~ sxRec = sx
#~ velsxRec = velsx
#~ veldnRec = veldn

up = 0
dx = 0

(vshoot * (($eyef > 0) and (not $targFriendly) and ($vshoot==0) and ($vtimer==1))) ++

# Consume all resources from veggies, but destroy others as fast as possible
shoot when (((eyef > 0) and ((robage%4)==0) and (inrange3) and (robage>=1) and ((refshell<50) or (not inrange1)) and (not targFriendly) and (waste<=100)) and ((refbody<refnrg) or (targVeggie)) and ((threatMode and 2)==0) and (nrg>300)) = -6
shoot when ((eyef > 0) and ((robage%4)==0) and (inrange3) and (robage>=1) and ((refshell<50) or (not inrange1)) and (not targFriendly) and (waste<=100) and (((refbody>=refnrg) and (not targVeggie))) and ((threatMode and 2)==0) and (nrg>300)) = -1
shootval when ((eyef > 0) and ((robage%4)==0) and (inrange1) and (robage>=1) and ((refshell<50) or (not inrange1)) and (not targFriendly) and (waste<=100) and ((threatMode and 2)==0) and (nrg>300)) = -4
shootval when ((eyef > 0) and ((robage%4)==0) and (inrange2) and (not inrange1) and (robage>=1) and ((refshell<50) or (not inrange1)) and (not targFriendly) and ((threatMode and 2)==0) and (nrg>300)) = -8
shootval when ((eyef > 0) and ((robage%4)==0) and (inrange3) and (not inrange1) and (robage>=1) and ((refshell<50) or (not inrange1)) and (not targFriendly) and ((threatMode and 2)==0) and (nrg>300)) = -10
# High-shell targets:
shoot when ((eyef > 0) and (inrange2) and (robage>=1) and (not targVeggie) and ((refshell>=50) or (refbody>100) or ((threatMode and 2)!=0)) and (not targFriendly) and (waste<=100) and (nrg>300)) = &strvenom
shootval when ((eyef > 0) and (inrange2) and (robage>=1) and (not targVeggie) and ((refshell>=50) or (refbody>100) or ((threatMode and 2)!=0)) and (not targFriendly) and (waste<=100) and (nrg>300)) = 10000

# Adjust body, and reproduce

fdbody when ((body>(minBody*2)) and (nrg<25000) and ((threatMode and 2)==0)) = (body-(minBody*2))*10
fdbody when ((nrg<500)) = floor((body-10)*10, 0)
strbody when ((nrg>25000) or (((threatMode and 2)!=0) and (nrg>1500))) = 100

repro when ((body>minBody) and (nrg>300) and (nrg>reproEnergy) and (pwaste <= 10000) and (robage>=2) and ((reproTimer<=0) or (nrg>25000))) = 30
reproducedLastCycle when (repro>0) = robage
reproTimer when ((reproTimer>0) and (nrg>300)) --
reproTimer when (repro>0) = reproTimerMax

#Make a new tie if we have a valid target, and we were either (a) not tied to something, or (b) tied to a veggie or friendly and this is a hostile
#If the tie is new, use targ functions instead of tie ones for determining actions

#Debug
#~ tieBefore = tie
#~ tieNumBefore = tienum
#~ tieLocBefore = tieloc
#~ tieValBefore = tieval
#~ tiePresBefore = tiepres
#~ delTieBefore = deltie

tie when ((eyef > 27) and (not targFriendly) and ((tiepres==0) or ((tiepres>0) and (tieNumAfter==tiepres) and ((tieVeggie) or (tieFriendly)) and ((not targVeggie) or (tieFriendly)))) and (robage>1)) = rnd(32000)
tienum when (tie!=0) = tie
aimshoot when ((not targFriendly) and ((shoot!=0) or (vshoot!=0)) and (waste<100) and (nrg>300)) = -fixedangle + aim
aimshoot when ((targFriendly) and ((shoot!=0) or (vshoot!=0)) and (nrg>300)) = -fixedangle-aim #Fire away from them

#We can do stuff with the tie if (((tie==tienum) and (tie!=0)) or (tiepres>0))
#We need to use targ functions if (tienum!=tiepres)

#If we aren't going to be setting tieloc, and it isn't already 0, clear it.
tieloc when (((tie==0) and (tieNumAfter==0)) or (robage<=1) or (((tieNumAfter!=tiepres) or (tie!=0) or (tieFriendly)) and ((tie==0) or (numties!=0) or (targFriendly))) or (tieloc==alreadyset)) = 0

#Feed
tieval when (((tie!=0) or (tieNumAfter>0)) and (robage>1) and (((tieNumAfter==tiepres) and (tie==0) and (not tieFriendly) and ((tieVeggie) or (refnrg<250))) or ((tie!=0) and (numties==0) and (not targFriendly) and (((threatMode and 4)==0) or (trefbody>=100)) and (targVeggie)))) = -1000
tieloc when (((tie!=0) or (tieNumAfter>0)) and (robage>1) and (((tieNumAfter==tiepres) and (tie==0) and (not tieFriendly) and ((tieVeggie) or (refnrg<250))) or ((tie!=0) and (numties==0) and (not targFriendly) and (((threatMode and 4)==0) or (trefbody>=100)) and (targVeggie)))) = -1

#Instakill
tieval when (((tie!=0) or (tieNumAfter>0)) and (robage>1) and (((tieNumAfter==tiepres) and (tie==0) and (not tieFriendly) and (((not tieVeggie) or (((threatMode and 4)!=0) and (trefbody<100))) and (refnrg>=250))) or ((tie!=0) and (numties==0) and (not targFriendly) and (not targVeggie))) and (tieval!=alreadyset)) = 10000
tieloc when (((tie!=0) or (tieNumAfter>0)) and (robage>1) and (((tieNumAfter==tiePres) and (tie==0) and (not tieFriendly) and (((not tieVeggie) or (((threatMode and 4)!=0) and (trefbody<100))) and (refnrg>=250))) or ((tie!=0) and (numties==0) and (not targFriendly) and ((not targVeggie) or ((threatMode and 4)!=0)))) and (tieloc!=alreadyset)) = &strvenom

sharenrg when ((tie==0) and (tieNumAfter==tiepres) and (numties==1) and (not tieFriendly)) = 100
tienum when ((tie==0) and (tienum!=alreadyset)) = tiepres #Set tienum to tiepres

tieNumAfter = tienum

#Debug
#~ tieAfter = tie
#~ tieLocAfter = tieloc
#~ tieValAfter = tieval
#~ tiePresAfter = tiepres
#~ delTieAfter = deltie

#Attempt to suicide if permawaste is excessive. I have no idea what "excessive" would be, so I picked 10000 out of nowhere.
repro when (pwaste > 10000) = 99
strbody when (pwaste > 10000) = 100

#Anti-virus stuff

#Did we already try deleting genes + 1 without anything getting deleted? Try deleting genes then.
delgene when ((thisgene==1) and (genes>=2) and (delgeneDecChecked==genes)) = genes
#If we didn't try it already, try deleting genes + 1.
delgene when ((thisgene==1) and (genes>=2) and (delgeneDecChecked!=genes)) = genes + 1
delgeneDecChecked when ((thisgene==1) and (genes>=2) and (delgene==genes)) = 0
delgeneDecChecked when ((thisgene==1) and (genes>=2) and (delgene==(genes+1))) = genes
delgeneDecChecked when ((genes==1)) = 0
#For the moment, we don't try deleting viruses at gene 1, as it is too dangerous.
#If we wound up with two copies of our own gene, then the one at gene 1 will delete the one at gene 2 after a couple cycles.

#Since our genome is ridiculously long, theoretically this may keep any virus that infects us from spreading itself. If, however, it turns out to be possible for one mkvirus command to override another, then after they override ours, we will override theirs right back.
#Note that this will only be executed when mkvirus doesn't already equal thisgene.
mkvirus = thisgene

#Create slime if we are in a virused environment.
mkslime when ((genes==1) and (((threatMode and 4)!=0)) and (slime<500) and (nrg>=1000)) = (500-slime)
mkslime when ((genes==1) and (((threatMode and 4)!=0)) and (slime<250) and (nrg>=700) and (nrg<1000)) = (250-slime)
mkslime when ((genes==1) and (((threatMode and 4)!=0)) and (slime<100) and (nrg>=400) and (nrg<700)) = (100-slime)


strpoison when ((genes==1) and (poison<500) and ((nrg*2)>(500-poison)) and (nrg>1500)) = (500-poison)
strpoison when ((genes==1) and (poison<500) and ((nrg*2)<=(500-poison)) and (nrg>1500)) = nrg/2

mkshell when ((genes==1) and (shell<100) and ((nrg*2)>(100-shell)) and (nrg>1500)) = (100-shell)
mkshell when ((genes==1) and (shell<100) and ((nrg*2)<=(100-shell)) and (nrg>1500)) = nrg/2

#ploc when ((genes==1) and ((robage%2)==0)) = &deltie
#ploc when ((genes==1) and ((robage%2)==1)) = &eye5
ploc when ((genes==1) and (nrg>300)) = &eye5
#venval when (((robage%2)==0) and (eyef > 20) and (robage>=1) and (refshell>=50) and (venom>0) and (not targFriendly) and (venval!=alreadyset) and (waste<=100)) = -10000
#venval when (((robage%2)==1) and (eyef > 20) and (robage>=1) and (refshell>=50) and (venom>0) and (not targFriendly) and (venval!=alreadyset) and (waste<=100)) = 0
#venval when ((eyef > 20) and (robage>=1) and (refshell>=50) and (venom>0) and (not targFriendly) and (waste<=100)) = -10000

#Dispose of waste
shoot when ((waste>100) and (genes==1) and (nrg>300)) = -4
shootval when ((waste>100) and (genes==1) and (nrg>300)) = waste

#Set maximum values
#Doesn't stop Etch's instakill shots :(
mkslime when ((mkslime>500) or (mkslime>(500-slime)) or (mkslime<0)) = 0
mkshell when ((mkshell>100) or (mkshell>(100-shell)) or (mkshell<0)) = 0
strvenom when ((strvenom>500) or (strvenom>(500-venom)) or (strvenom<0)) = 0
strpoison when ((strpoison>500) or (strpoison>(500-poison) or (strpoison<0))) = 0
fixpos = 0
repro when (genes>1) = 0

#~ shootRec = shoot
#~ shootvalRec = shootval
#~ venvalRec = venval
#~ aimshootRec = aimshoot

shang when (nrg>300) = 0
« Last Edit: July 16, 2007, 11:51:05 PM by Trafalgar »

Offline Trafalgar

  • Bot Destroyer
  • ***
  • Posts: 122
    • View Profile
Guardian v0.9 (F1)(Trafalgar)-15.07.07
« Reply #6 on: July 16, 2007, 11:52:38 PM »
I accidentally broke the sharenrg line right before I posted the bot (I only just noticed it now) - I presumably broke it while I was cleaning up the comments and such for posting here, which was after I finished running it through the league. I've fixed it now. (I had added a comparison between tienum and tiepres, which was never true because tienum is cleared by DB each cycle, and the line that sets it came after that line - I've changed it to correctly check tieNumAfter instead of tienum.)

There's only one line which refers to sharenrg, so it should be fairly easy to find where the change is if you've already downloaded it.
« Last Edit: July 16, 2007, 11:55:21 PM by Trafalgar »

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
Guardian v0.9 (F1)(Trafalgar)-15.07.07
« Reply #7 on: July 17, 2007, 06:57:59 PM »
Quote from: Trafalgar
This is not F2-valid at the moment, mainly because it tie-feeds from veggies, and uses sharenrg on them too. It also keeps an mkvirus timer going at all times
Tie feeding is a no-no but sharenrg is allowed for F2 (sharenrg needs a permanent tie).

Quote from: Trafalgar
Other things it does that I think F2 should forbid, but which it apparently doesn't:
Instakill using ties (setting strvenom to 10000)
Instakill using shots (same way)
There shouldn't be instakill methods, that's why F2 allows this. Will probably add these to known bugs.

Quote from: Trafalgar
Here's a link to it,
Hope this is your updated version, this is the one I have just run in the league!

Guardian came first btw, as expected, very nice bit of programming!!  
If you try and take a cat apart to see how it works, the first thing you have in your hands is a non-working cat.
Douglas Adams

Offline Trafalgar

  • Bot Destroyer
  • ***
  • Posts: 122
    • View Profile
Guardian v0.9 (F1)(Trafalgar)-15.07.07
« Reply #8 on: July 18, 2007, 12:39:30 PM »
Quote from: Jez
Hope this is your updated version, this is the one I have just run in the league!
Yep, it was the updated version.

Quote from: Jez
Guardian came first btw, as expected, very nice bit of programming!!  
Thanks

Now to wait for someone to beat it...

Offline abyaly

  • Bot Destroyer
  • ***
  • Posts: 363
    • View Profile
Guardian v0.9 (F1)(Trafalgar)-15.07.07
« Reply #9 on: July 18, 2007, 05:13:26 PM »
All is right in the world when F2 bots don't hold the F1 league.
Lancre operated on the feudal system, which was to say, everyone feuded all
the time and handed on the fight to their descendants.
        -- (Terry Pratchett, Carpe Jugulum)

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
Guardian v0.9 (F1)(Trafalgar)-15.07.07
« Reply #10 on: July 18, 2007, 05:15:12 PM »
Quote from: abyaly
All is right in the world when F2 bots don't hold the F1 league.
If you try and take a cat apart to see how it works, the first thing you have in your hands is a non-working cat.
Douglas Adams

Offline rayz

  • Bot Neophyte
  • *
  • Posts: 19
    • View Profile
Guardian v0.9 (F1)(Trafalgar)-15.07.07
« Reply #11 on: April 01, 2008, 11:56:02 PM »
My, my, my.  What a long bot.  Unfortunately, I believe I copied something wrong from the bot code, as the Guardian is just sitting there and doing nothing.  But it looks great... that is, of what I could understand of it...

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Guardian v0.9 (F1)(Trafalgar)-15.07.07
« Reply #12 on: April 02, 2008, 12:45:09 AM »
Look in the F1 league folder.  In one of the pinned topics, you can find a download of all the F1 bots in that league table.  Guardian should be in that.

Offline abyaly

  • Bot Destroyer
  • ***
  • Posts: 363
    • View Profile
Guardian v0.9 (F1)(Trafalgar)-15.07.07
« Reply #13 on: April 04, 2008, 10:17:30 AM »
Possibly version trauma.
Lancre operated on the feudal system, which was to say, everyone feuded all
the time and handed on the fight to their descendants.
        -- (Terry Pratchett, Carpe Jugulum)

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Guardian v0.9 (F1)(Trafalgar)-15.07.07
« Reply #14 on: April 04, 2008, 10:22:38 AM »
Runs fine for me but the change to make sight distance a function of width seriously impacts it's effectivness...
Many beers....