Author Topic: Locust (F1) (Moonfisher) 24-03-08  (Read 2701 times)

Offline Moonfisher

  • Bot Overlord
  • ****
  • Posts: 592
    • View Profile
Locust (F1) (Moonfisher) 24-03-08
« on: March 24, 2008, 12:07:56 PM »
Starts out by spreading and gets more agressive and swarms more as it gains in numbers.
Realy entertaining to watch against bots like multiply and other stronger bots. It's a weak fighter but wins through numbers.
Also looks cool in larger sims if you have larger agressive stuff spawning.

I was going to make an evo bot, so I could still have a bot running while working on that thesis I've been neglecting through easter. Like a nicotine patch or something...
Wanted it to depend on numbers and help eachother, to prevent canibalism. Also wanted to run it in a hostile environment, wanted a very high veggy cap and no energy gain and have stong bots spawning, to make sure theres always an oponent to reduce chances for canibalism...

But then I had to make some modifications and defences, and one thing led to another... so now it's an F1 bot.

It beats the old F1 league and Multply and Ebola, but not Pacifist, TieFighters and Etch II.


Code: [Select]
'Locust
'By Moonfisher
'Was initialy made for evo sims
'but one thing lead to another
'and now it's an F1 bot.
'It's ok for evo sims,
'but not great.

def realgenes 121
def rightgenes 122
def random 123
def huntx 124
def hunty 125
def hunt 126
def huntnr 127
def nrone 128
def spread 973

def key 500
def hunttime 5
def ouch 10
def cycle 20
def switch 10

cond
*.realgenes *.genes !=
start
*.genes .realgenes store
stop

cond
*.rightgenes 0 =
start
*.genes .rightgenes store
stop

cond
*.robage 0 =
start
*.tiepres .deltie store
100 .eye1width store
100 .eye9width store
.key 971 store
.key 972 store
1 rnd .random store
971 *.random add .memloc store
971 *.random add .tmemloc store
.shoot .vloc store
-2 .venval store
.setaim .ploc store
stop

cond
*.robage 0 =
*.spread 1 =
start
682 .aimsx store
stop

cond
*.numties 0 >
*.eye5 50 >
*.memval .key !=
start
.tieloc .shoot store
stop

cond
*.numties 0 >
*.trefnrg 2000 >=
*.trefbody 300 < or
*.totalmyspecies 100 < or
start
-1 .shootval store
stop

cond
*.numties 0 >
*.trefnrg 2000 <
*.trefbody 300 >=
*.totalmyspecies 100 >=
start
-6 .shootval store
stop

cond
*.numties 0 >
*.tmemval .key =
start
*.tiepres .deltie store
stop

cond
*.eyef 0 >
*.memval .key !=
*.refshell 0 !=
*.refeye 0 != or
*.refshoot 0 != or
*.memval 0 != or
start
0 .hunt store
*.refxpos .out3 store
*.refypos .out4 store
1 .out5 store
stop

cond
*.eyef 0 =
*.memval .key = or
start
0 .out3 store
0 .out4 store
stop

cond
*.in3 0 !=
*.in4 0 !=
*.eyef 0 >
*.memval .key =
*.totalmyspecies 150 >
*.in5 *.huntnr <=
*.huntnr 0 = or
start
*.robage .hunt store
*.in3 .huntx store
*.in4 .hunty store
*.in5 .huntnr store
stop

cond
*.hunt 3 add *.robage <
start
0 .huntnr store
stop

cond
*.in3 0 !=
*.in4 0 !=
*.eyef 0 >
*.memval .key =
*.totalmyspecies 150 >
'*.robage 5 mod 0 =
*.in5 3 <
start
*.in3 .out3 store
*.in4 .out4 store
*.in5 1 add .out5 store
stop

cond
*.hunt .hunttime add *.robage >=
*.nrg 100 >
*.robage 20 >
start
0 .focuseye store
*.huntx *.hunty angle .setaim store
*.huntx *.xpos sub abs *.hunty *.ypos sub abs pyth 10 div 10 sub 10 *.huntnr mult sub 50 ceil .up store
*.velsx .dx store
stop

cond
*.eyef 0 =
*.memval .key = or
*.robage .cycle mod .switch <=
*.pain .ouch <
*.robage 10 >
*.hunt .hunttime add *.robage <
start
120 .aimsx store
0 .focuseye store
stop

cond
*.eyef 0 =
*.robage .cycle mod .switch >
*.hunt .hunttime add *.robage <
start
*.body 10 div 50 add .up store
stop

cond
*.eyef 0 !=
*.memval .key =
*.robage .cycle mod .switch >
*.pain .ouch <
*.hunt .hunttime add *.robage <
start
*.refvelup 10 add .up store
*.refveldx .dx store
stop

cond
*.eyef 0 =
*.memval .key = or
*.robage 3 mod 0 =
*.pain .ouch <
*.hunt .hunttime add *.robage <
start
0 .focuseye store
stop

cond
*.eyef 0 =
*.memval .key = or
*.robage 3 mod 1 =
*.pain .ouch <
*.hunt .hunttime add *.robage <
start
-4 .focuseye store
stop

cond
*.eyef 0 =
*.memval .key = or
*.robage 3 mod 0 =
*.pain .ouch <
*.hunt .hunttime add *.robage <
start
4 .focuseye store
stop

cond
*.eyef 0 >
*.memval .key !=
*.pain .ouch >= or
start
*.refveldx .dx store
stop

cond
*.eyef 0 >
*.memval .key !=
*.numties 0 =
*.pain .ouch <
start
*.refxpos *.refypos angle .setaim store
0 .focuseye store
stop

cond
*.eyef 0 >
*.memval .key =
*.numties 0 =
*.spread 0 =
*.robage 20 >= or
*.pain .ouch >=
*.robage .cycle mod .switch >
*.totalmyspecies 150 > and or
*.hunt .hunttime add *.robage <
start
*.refxpos *.refypos angle .setaim store
0 .focuseye store
stop

cond
*.eyef 0 >
*.memval .key !=
*.pain .ouch >= or
*.refxpos *.xpos sub abs *.refypos *.ypos sub abs pyth 150 >
start
*.refvelup *.refxpos *.xpos sub abs *.refypos *.ypos sub abs pyth 10 div add .up store
stop

cond
*.eyef 0 >
*.memval .key !=
*.pain .ouch >= or
*.refxpos *.xpos sub abs *.refypos *.ypos sub abs pyth 150 <=
start
*.refvelup .up store
stop

cond
*.eye5 0 >
*.focuseye 0 =
*.memval .key !=
*.totalmyspecies 70 <
*.numties 0 =
*.refshell 0 !=
*.refeye 0 != or
*.refshoot 0 != or
*.memval 0 != or
start
0 .up store
*.refveldx 20 add .dx store
*.refvelup 20 add .dn store
stop

cond
*.eye5 0 >
*.focuseye 0 =
*.memval .key !=
*.numties 0 =
*.refshell 0 =
*.refeye 0 =
*.refshoot 0 =
*.memval 0 =
start
1 .tie store
-6 .shoot store
stop

cond
*.eyef 0 >
*.memval .key !=
*.focuseye 0 =
*.numties 0 =
*.body 50 >
start
-6 .shoot store
stop

cond
*.nrg 100 >
*.body 100 >
*.nrg *.body 2 mult <
start
100 .fdbody store
stop

cond
*.body 400 >
*.nrg *.body 3 mult >
start
100 .strbody store
stop

cond
*.nrg 11000 >
*.nrg *.body >
start
1000 .strbody store
stop

cond
*.robage 5 mod 0 =
*.eye5 20 >
*.focuseye 0 =
*.memval .key !=
*.venom 5 >
start
-3 .shoot store
stop

cond
*.numties 0 >
*.robage 5 mod 0 =
start
.tieloc .vloc store
-1 .venval store
stop

cond
*.numties 0 >
*.robage 5 mod 0 =
*.totalmyspecies 100 >
start
-6 .venval store
stop

cond
*.numties 0 =
*.robage 5 mod 0 =
start
.shoot .vloc store
-2 .venval store
stop

cond
*.robage 0 =
*.spread 0 !=
start
682 .aimsx store
stop

cond
*.nrg 3000 %=
*.body 1000 %=
*.totalmyspecies 70 <
start
1 .spread store
stop

cond
*.spread 0 !=
*.nrone 0 =
*.robage 20 <
*.eye5 0 >
*.memval .key =
start
200 .aimsx store
*.velsx .dx store
50 .up store
stop

cond
*.spread 0 !=
*.robage 20 >
*.totalmyspecies 70 >
start
0 .spread store
stop

cond
*.shell 100 <
*.nrg 100 >
*.totalmyspecies 70 >
start
20 .mkshell store
stop

cond
*.venom 100 <
*.nrg 80 >
*.totalmyspecies 60 >
start
20 .strvenom store
stop

cond
*.poison 50 <
*.nrg 100 >
*.totalmyspecies 70 >
start
10 .strpoison store
stop

cond
*.nrg 100 <
*.body 10 >
start
50 .fdbody store
stop

cond
*.nrg 100 >
*.robage 10 <
*.eyef 0 =
*.memval .key = or
start
50 .up store
stop

cond
*.numties 0 >
*.robage 5 mod 0 =
start
*.tiepres .delties store
stop

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

cond
*.numties 0 >
start
*.tiepres .tienum store
40 .stifftie store
1 .tielen store
99 .sharenrg store
.tieval .tieloc store
1000 .tieval store
*.trefxpos *.trefypos angle .setaim store
0 .focuseye store
stop

cond
*.numties 0 >
*.robage 9 mod 0 =
*.robage 10 >
start
.fixpos .tieloc store
1 .tieval store
stop

cond
*.nrg 300 >
*.body 100 > and
*.totalmyspecies 100 < and
*.nrg 1000 >
*.body 300 > and
*.totalmyspecies 100 >= and or
start
52 .repro store
stop

cond
*.shoot 0 !=
*.shoot -1 !=
*.shoot -3 !=
*.shoot -4 !=
*.shoot -6 !=
*.shoot .tieloc !=
start
0 .shoot store
0 .shootval store
stop

cond
*.strbody 0 <
start
0 .strbody store
stop

cond
'*.repro 22 !=
*.repro 52 !=
*.repro 0 !=
start
0 .repro store
stop

cond
*.realgenes *.rightgenes !=
start
0 .vshoot store
0 .sexrepro store
0 .mrepro store
0 .mkvirus store
1 .mkshell store
1 .strvenom store
0 .strpoison store
0 .mkslime store
0 .aimsx store
0 .aimdx store
0 .dn store
0 .sx store
0 .fdbody store
0 .fixpos store
0 .delgene store
stop

end
« Last Edit: August 28, 2010, 04:54:44 PM by Shasta »