'Martian Tank 3
'By Martin Welgemoed, Martian in the DB Forum
'
'Please comment on this bot.
'
'Thanks PY for simplebot tutorial
'Thanks to Elite for the counter attacking gene, the turning gene, the accuracy gene and the venom and poison tutorials
'Thanks to Abyaly for helping with the venom
'
'Designed for 2.43
'Designed for F2
'Leaching
cond
*.tiepres 0 >
start
*.tiepres .tienum store
.tieval .tieloc store
1000 .tieval store
stop
'Delete birthtie
cond
*.robage 0 =
start
.tie inc
.shoot .memloc store
.shoot .vloc store
-2 .venval store
.shoot .ploc store
stop
cond
*.robage 1 =
start
.deltie inc
stop
'Get rid of waste
cond
*.waste 500 >
start
*.waste .shootval store
-4 .shoot store
0 .shflav store
stop
'Search for a target
cond
*.refeye *.myeye !=
*.eye1 *.eye2 >=
*.eye1 *.eye3 >=
*.eye1 *.eye4 >=
*.eye1 *.eye5 >=
*.eye1 *.eye6 >=
*.eye1 *.eye7 >=
*.eye1 *.eye8 >=
*.eye1 *.eye9 >=
start
mult -140
stop
cond
*.refeye *.myeye !=
*.eye9 *.eye2 >=
*.eye9 *.eye3 >=
*.eye9 *.eye4 >=
*.eye9 *.eye5 >=
*.eye9 *.eye6 >=
*.eye9 *.eye7 >=
*.eye9 *.eye8 >=
*.eye9 *.eye1 >=
start
mult 140
stop
cond
*.refeye *.myeye !=
*.eye2 *.eye9 >=
*.eye2 *.eye3 >=
*.eye2 *.eye4 >=
*.eye2 *.eye5 >=
*.eye2 *.eye6 >=
*.eye2 *.eye7 >=
*.eye2 *.eye8 >=
*.eye2 *.eye1 >=
start
mult -105
stop
cond
*.refeye *.myeye !=
*.eye8 *.eye9 >=
*.eye8 *.eye3 >=
*.eye8 *.eye4 >=
*.eye8 *.eye5 >=
*.eye8 *.eye6 >=
*.eye8 *.eye7 >=
*.eye8 *.eye2 >=
*.eye8 *.eye1 >=
start
mult 105
stop
cond
*.refeye *.myeye !=
*.eye3 *.eye9 >=
*.eye3 *.eye8 >=
*.eye3 *.eye4 >=
*.eye3 *.eye5 >=
*.eye3 *.eye6 >=
*.eye3 *.eye7 >=
*.eye3 *.eye2 >=
*.eye3 *.eye1 >=
start
mult -70
stop
cond
*.refeye *.myeye !=
*.eye7 *.eye9 >=
*.eye7 *.eye8 >=
*.eye7 *.eye4 >=
*.eye7 *.eye5 >=
*.eye7 *.eye6 >=
*.eye7 *.eye3 >=
*.eye7 *.eye2 >=
*.eye7 *.eye1 >=
start
mult 70
stop
cond
*.refeye *.myeye !=
*.eye4 *.eye9 >=
*.eye4 *.eye8 >=
*.eye4 *.eye7 >=
*.eye4 *.eye5 >=
*.eye4 *.eye6 >=
*.eye4 *.eye3 >=
*.eye4 *.eye2 >=
*.eye4 *.eye1 >=
start
mult -35
stop
cond
*.refeye *.myeye !=
*.eye6 *.eye9 >=
*.eye6 *.eye8 >=
*.eye6 *.eye7 >=
*.eye6 *.eye5 >=
*.eye6 *.eye4 >=
*.eye6 *.eye3 >=
*.eye6 *.eye2 >=
*.eye6 *.eye1 >=
start
mult 35
stop
cond
*.refeye *.myeye !=
*.eye5 *.eye9 >=
*.eye5 *.eye8 >=
*.eye5 *.eye7 >=
*.eye5 *.eye6 >=
*.eye5 *.eye4 >=
*.eye5 *.eye3 >=
*.eye5 *.eye2 >=
*.eye5 *.eye1 >=
start
mult
stop
cond
*.eye5 0 >
*.refeye *.myeye =
start
mult 900 rnd 100 add
100 .up store
stop
cond
*.eye1 = 0
*.eye2 = 0
*.eye3 = 0
*.eye4 = 0
*.eye5 = 0
*.eye6 = 0
*.eye7 = 0
*.eye8 = 0
*.eye9 = 0
*.robage 50 mod = 0
start
mult 900 rnd 100 add
stop
'If I'm forced by poison to shoot out energy
'make sure it doesn't hit an enemy
cond
-2 *.shoot =
0 *.eye5 !=
*.refeye *.myeye !=
start
mult
500 .up store
mult 900 rnd 100 add
stop
'reproduce
cond
*.nrg 5100 >
start
mult 628 50 inc
50 .repro store
100 .strbody store
stop
cond
*50 0 >
start
mult 628 50 dec
stop
'This does the amount of rotation placed on the stack
cond
start
.aimdx store
stop
cond
*.eye1 = 0
*.eye2 = 0
*.eye3 = 0
*.eye4 = 0
*.eye5 = 0
*.eye6 = 0
*.eye7 = 0
*.eye8 = 0
*.eye9 = 0
start
100 .up store
stop
'Chase the target
cond
*.eye5 0 >
*.refeye *.myeye !=
start
*.refxpos *.refypos angle .setaim store
*.refveldx .dx store
*.refvelup 30 add .up store
stop
'Shoot the target
cond
*.eye5 25 >
*.refeye *.myeye !=
*.memval -2 !=
*.refeye 0 !=
start
50 .shootval store
-3 .shoot store
stop
cond
*.eye5 25 >
*.refeye *.myeye !=
*.memval -2 sub sgn abs 1 sub -1 mult *.refeye 0 sub sgn abs 1 sub -1 mult add sgn abs 1 =
*.refpoison *.refshell =>
start
16 .shootval store
-6 .shoot store
stop
cond
*.eye5 25 >
*.refeye *.myeye !=
*.memval -2 sub sgn abs 1 sub -1 mult *.refeye 0 sub sgn abs 1 sub -1 mult add sgn abs 1 =
*.refpoison *.refshell <
start
16 .shootval store
-1 .shoot store
stop
'Return fire
cond
*.shflav 0 !=
*.refpoison *.refshell <
*.memval -2 =
start
*.shang .aimshoot store
32 .shootval store
-1 .shoot store
0 .shflav store
stop
cond
*.shflav 0 !=
*.refpoison *.refshell >
*.memval -2 =
start
*.shang .aimshoot store
32 .shootval store
-6 .shoot store
0 .shflav store
stop
cond
*.shflav 0 !=
*.memval -2 !=
start
*.shang .aimshoot store
25 .shootval store
-3 .shoot store
0 .shflav store
stop
'Defense
cond
*.venom 250 <
*.nrg 1000 >
start
50 .strvenom store
stop
cond
*.poison 500 <
*.nrg 1000 >
start
50 .strpoison store
stop
cond
*.shell 300 <
*.nrg 1000 >
start
50 .mkshell store
stop
'Prevent fixing
cond
*.fixed 1 =
start
.fixpos dec
stop
end