Show Posts

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


Topics - Moonfisher

Pages: 1 [2] 3
16
Bot Challenges / Conspec Challenge
« on: May 04, 2008, 06:08:57 AM »
Start in normal F1 conditions, with the test alge as the only alge and your bot as the only bot.
The object is to live off the alge with a bot that has a conspec (Doesn't attack it's own).
I guess the secondary objective would be to have as solid a conspec as possible, only being folled for as few cycles as possible, or not at all.

Also ofcouse the conspec used should be something that's hasn't been posted in this topic yet.
There are conspecs out there it can't steal, you can also post those if you like, but I want to encourage people to try to think of new ways aswell.

The test alge will not attack or make shell or anything like that, it only reproduces slowly and steals conpecs.
Just post or upload a bot that uses the conspec you want to submit.

The conpec test alge :
Code: [Select]
'Alge for testing your conspec
'If you can't get up close and feed on this
'Then your conspec is obviously vulnerable to these genes

cond
*.robage 0 =
start
.memloc .memloc store
.tmemloc .tmemloc store
100 .eye5width 1 mult store
stop

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

cond
*.memloc .memloc !=
*.memval 0 !=
start
*.memval *.memloc store
stop

cond
*.memloc .memloc !=
start
.memloc .memloc store
stop

cond
*.eyef 0 >
*.memloc .memloc =
*.memval 0 >
*.memval .memloc !=
start
*.memval .memloc store
stop

cond
*.tmemloc .tmemloc !=
*.tmemval 0 !=
start
*.tmemval *.tmemloc store
stop

cond
*.tmemloc .tmemloc !=
start
.tmemloc .tmemloc store
stop

cond
*.numties 0 >
*.tmemloc .tmemloc =
*.tmemval 0 >
*.tmemval .tmemloc !=
start
*.tmemval .tmemloc store
stop

cond
*.eyef 0 >
start
*.in1 .out1 store
*.in2 .out2 store
*.in3 .out3 store
*.in4 .out4 store
*.in5 .out5 store
*.in6 .out6 store
*.in7 .out7 store
*.in8 .out8 store
*.in9 .out9 store
*.in10 .out10 store
stop

cond
*.numties 0 >
start
*.tin1 .tout1 store
*.tin2 .tout2 store
*.tin3 .tout3 store
*.tin4 .tout4 store
*.tin5 .tout5 store
*.tin6 .tout6 store
*.tin7 .tout7 store
*.tin8 .tout8 store
*.tin9 .tout9 store
*.tin10 .tout10 store
stop

cond
*.eyef 0 >
start
*.refxpos *.refypos angle .setaim store
stop

cond
*.eyef 0 =
start
*.aim 70 add .setaim store
stop

cond
*.shflav 0 !=
*.shflav -2 !=
*.memloc .memloc =
start
*.aim *.shang sub .setaim store
0 .shflav store
stop


'--- Addapt shoot commands
cond
*.eyef 0 >
*.refshoot *.myshoot <
start
*.thisgene 1 add .delgene store

*.myshoot *.refshoot sub 1 >
*.thisgene 3 add .delgene store

*.myshoot *.refshoot sub 4 >
*.thisgene 4 add .delgene store

*.myshoot *.refshoot sub 9 >
*.thisgene 5 add .delgene store

*.myshoot *.refshoot sub 19 >
*.thisgene 6 add .delgene store

*.myshoot *.refshoot sub 39 >
*.thisgene 7 add .delgene store
stop

cond
0 1 =
start
0 .shoot store
stop

cond
0 1 =
start
0 .shoot store
stop

cond
0 1 =
start
0 .shoot store
0 .shoot store
stop

cond
0 1 =
start
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
stop

cond
0 1 =
start
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
stop

cond
0 1 =
start
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
stop

cond
0 1 =
start
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
stop


'--- Addapt eye commands
cond
*.eyef 0 >
*.refeye *.myeye <
start
*.thisgene 1 add .delgene store

*.myeye *.refeye sub 1 >
*.thisgene 3 add .delgene store

*.myeye *.refeye sub 4 >
*.thisgene 4 add .delgene store

*.myeye *.refeye sub 9 >
*.thisgene 5 add .delgene store

*.myeye *.refeye sub 19 >
*.thisgene 6 add .delgene store

*.myeye *.refeye sub 39 >
*.thisgene 7 add .delgene store
stop

cond
0 1 =
start
*.eye9 0 >
stop

cond
0 1 =
start
*.eye9 0 >
stop

cond
0 1 =
start
*.eye9 0 >
*.eye9 0 >
stop

cond
0 1 =
start
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
stop

cond
0 1 =
start
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
stop

cond
0 1 =
start
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
stop

cond
0 1 =
start
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
stop

end

17
F2 bots / Spinner v1.5 (F2) (Moonfisher) 04-05-08
« on: May 03, 2008, 07:40:20 PM »
Ok, so I changed the conspec again... and come to think of it... I think the added age is the only thing it realy needed, the different keys and offset and all that don't actualy help in the en... just a leftover from the old conspec.
Anyway it's an elaborate conspec that could have worked just as well as a simple conspec with one key...
And it steals more conspecs now (eyes and shoots).
So ofcourse theres an updated test alge aswell.
I know it isn't hard to find a conspec this doesn't beat... but I'm hoping it'll spawn some new interesting conspecs...

Spinner v1.5 :
Code: [Select]
'Spinner v1.5 (F2) 04-05-08
'by Moonfisher
'Changed the conspec for like the fourth time
'And it also steals some more conspec types now
'And fixed a couple of small things


'------------------- vars
def seteyes 50
def seteyewidth 51
def seteyespace 52
def setoffset 53

def state 54
def repspin 55

def randm 56
def keyloc 57

def oponent 58
def toponent 59
def genekill 60

def birthstate 971
def birthx 972
def birthy 973


'-------------------- constants
def spineyewidth 0
def spineyespace 105
def spinoffset 140

def scaning 1
def torpedo 2

'0 is nothing
def friend 13
def enemy 14
def alge 15

def key1 543
def key2 1613
def key3 3306
def key4 4039
'(Key + 3200 must not exceed 8191)

def startkey 110
def startloc 120
def locs 5 '--- Must correcpond to the amount of different tie actions
'Set locs to 4 to disable instant kill using .shootval
'Set locs to 3 to disable .strbody killing aswell


'================================================
'----- Birth

cond
*.robage 0 =
start
'--- conspec
3 rnd .randm store
.startkey *.randm add .keyloc store
.memloc .memloc store
.tmemloc .tmemloc store
.key1 .startkey store
.key2 .startkey 1 add store
.key3 .startkey 2 add store
.key4 .startkey 3 add store
'-------Tie actions (5)
.eye5dir .startloc store
682 .startloc 1 add store
.vloc .startloc 2 add store
174 .startloc 3 add store
'.memloc .startloc 4 add store '-- Funny, but no point in both stealing keys and breaking conspecs
'173 .startloc 5 add store
.mrepro .startloc 4 add store '-- Also funny, but can mess up the stolen eye and shoot conspecs
65 .startloc 5 add store
.shootval .startloc 6 add store
31999 .startloc 7 add store
.strbody .startloc 8 add store
31999 .startloc 9 add store
'--------
.shoot .ploc store
stop

cond
*.robage 0 =
*.birthstate 0 =
start
.scaning .state store
stop

cond
*.robage 0 =
*.birthstate 0 !=
*.state 0 =
start
*.birthstate .state store
stop

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

cond
*.robage 0 =
*.state .scaning =
start
1 .seteyes store
.spineyewidth .seteyewidth store
.spineyespace .seteyespace store
.spinoffset .setoffset store
.shoot .vloc store
-2 .venval store
.shoot .ploc store
stop

cond
*.robage 0 =
*.state .torpedo =
start
1 .seteyes store
.spineyewidth .seteyewidth store
.spineyespace .seteyespace store
.spinoffset .setoffset store
.shoot .vloc store
-2 .venval store
.shoot .ploc store
stop

cond
*.seteyes 1 =
start
*.setoffset .eye9dir store
*.setoffset *.seteyespace add .eye8dir store
*.setoffset *.seteyespace 2 mult add .eye7dir store
*.setoffset *.seteyespace 3 mult add .eye6dir store
*.setoffset *.seteyespace 4 mult add .eye5dir store
*.setoffset *.seteyespace 5 mult add .eye4dir store
*.setoffset *.seteyespace 6 mult add .eye3dir store
*.setoffset *.seteyespace 7 mult add .eye2dir store
*.setoffset *.seteyespace 8 mult add .eye1dir store
4 .focuseye store
0 .seteyes store
stop

'================================================


'================================================
'----- Conspec

start
*.keyloc .startkey sub 8192 mult *.robage 10 div add *.keyloc * add .out9 store
*.keyloc .startkey sub 8192 mult *.robage 10 div add *.keyloc * add .tout9 store
stop

cond
*.eyef 0 >
*.in9 24576 & 8192 div .startkey add * *.refage 10 div add *.in9 8191 & 1 sub >
*.in9 24576 & 8192 div .startkey add * *.refage 10 div add *.in9 8191 & 1 add <
start
.friend .oponent store
stop

cond
*.eyef 0 >
*.in9 24576 & 8192 div .startkey add * *.refage 10 div add *.in9 8191 & 1 sub <
*.in9 24576 & 8192 div .startkey add * *.refage 10 div add *.in9 8191 & 1 add > or
start
.enemy .oponent store
stop

cond
*.memval 0 =
*.refeye 0 =
*.refshoot 0 =
*.refshell 0 =
*.refpoison 0 =
*.refvenom 0 =
*.eyef 0 >
start
.alge .oponent store
stop

cond
*.eyef 0 =
*.robage 0 = or
start
0 .oponent store
stop

cond
*.numties 0 >
*.tin9 24576 & 8192 div .startkey add * *.trefage 10 div add *.tin9 8191 & 2 sub >
*.tin9 24576 & 8192 div .startkey add * *.trefage 10 div add *.tin9 8191 & 2 add < and
*.trefage 0 = or
start
.friend .toponent store
stop

cond
*.numties 0 >
*.tin9 24576 & 8192 div .startkey add * *.trefage 10 div add *.tin9 8191 & 2 sub <
*.tin9 24576 & 8192 div .startkey add * *.trefage 10 div add *.tin9 8191 & 2 add > or
*.trefage 0 >
start
.enemy .toponent store
stop

cond
*.tmemval 0 =
*.trefeye 0 =
*.trefshoot 0 =
*.trefshell 0 =
*.numties 0 >
start
'.alge .toponent store
stop

cond
*.numties 0 =
*.robage 0 = or
start
0 .toponent store
stop


'----- Poser conspecs
cond
*.memloc .memloc !=
*.memval 0 !=
start
*.memval *.memloc store
stop

cond
*.memloc .memloc !=
start
.memloc .memloc store
stop

cond
*.eyef 0 >
*.memloc .memloc =
*.memval 0 >
*.memval .memloc !=
start
*.memval .memloc store
stop

cond
*.tmemloc .tmemloc !=
*.tmemval 0 !=
start
*.tmemval *.tmemloc store
stop

cond
*.tmemloc .tmemloc !=
start
.tmemloc .tmemloc store
stop

cond
*.numties 0 >
*.tmemloc .tmemloc =
*.tmemval 0 >
*.tmemval .tmemloc !=
start
*.tmemval .tmemloc store
stop

cond
*.eyef 0 >
start
*.in1 .out1 store
*.in2 .out2 store
*.in3 .out3 store
*.in4 .out4 store
*.in5 .out5 store
*.in6 .out6 store
*.in7 .out7 store
*.in8 .out8 store
*.in10 .out10 store
stop

cond
*.numties 0 >
start
*.tin1 .tout1 store
*.tin2 .tout2 store
*.tin3 .tout3 store
*.tin4 .tout4 store
*.tin5 .tout5 store
*.tin6 .tout6 store
*.tin7 .tout7 store
*.tin8 .tout8 store
*.tin10 .tout10 store
stop

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

'--- Steal shoot
cond
*.eyef 0 >
*.refshoot *.myshoot <
*.refshoot 0 >
start
*.thisgene 1 add .delgene store

*.myshoot *.refshoot sub 1 >
*.thisgene 3 add .delgene store

*.myshoot *.refshoot sub 4 >
*.thisgene 4 add .delgene store

*.myshoot *.refshoot sub 9 >
*.thisgene 5 add .delgene store

*.myshoot *.refshoot sub 19 >
*.thisgene 6 add .delgene store

*.myshoot *.refshoot sub 39 >
*.thisgene 7 add .delgene store

clearbool
*.delgene .genekill store
stop

cond
0 1 =
start
0 .shoot store
stop

cond
0 1 =
start
0 .shoot store
stop

cond
0 1 =
start
0 .shoot store
0 .shoot store
stop

cond
0 1 =
start
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
stop

cond
0 1 =
start
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
stop

cond
0 1 =
start
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
stop

cond
0 1 =
start
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
stop

'--- Steal eyes
cond
*.eyef 0 >
*.refeye *.myeye <
*.refeye 0 >
start
*.thisgene 1 add .delgene store

*.myeye *.refeye sub 1 >
*.thisgene 3 add .delgene store

*.myeye *.refeye sub 4 >
*.thisgene 4 add .delgene store

*.myeye *.refeye sub 9 >
*.thisgene 5 add .delgene store

*.myeye *.refeye sub 19 >
*.thisgene 6 add .delgene store

*.myeye *.refeye sub 39 >
*.thisgene 7 add .delgene store

clearbool
*.delgene .genekill store
stop

cond
0 1 =
start
*.eye9 0 >
stop

cond
0 1 =
start
*.eye9 0 >
stop

cond
0 1 =
start
*.eye9 0 >
*.eye9 0 >
stop

cond
0 1 =
start
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
stop

cond
0 1 =
start
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
stop

cond
0 1 =
start
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
stop

cond
0 1 =
start
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
stop

'================================================

cond
*.state .torpedo =
*.oponent .alge =
*.nrg 500 >
start
.scaning .state store
stop

'================================================
'----- Shooting

cond
*.state .scaning =
*.eyef 0 >
*.oponent .enemy =
*.oponent .alge = or
start
*.refxpos *.refypos angle .setaim store
*.refxpos *.xpos sub abs *.refypos *.ypos sub abs pyth 5 div 30 sub 0 floor 100 ceil *.refvelup add .up store
*.refveldx .dx store
-6 6 1 add store
*.refxpos .out4 store
*.refypos .out5 store
stop

cond
*.poisoned 0 =
*.body 50 >
*.state .scaning =
*.eyef 55 >
*.oponent .enemy =
*.oponent .alge = or
start
*.nrg 30 div 20 ceil *.eyef 40 sub 0 floor sgn *.body 40 sub 0 floor sgn mult mult 1 floor .shootval store
stop

cond
*.eyef 0 =
*.oponent .friend = or
*.out4 0 !=
*.out5 0 != or
start
0 .out4 store
0 .out5 store
stop

cond
*.state .scaning =
*.eyef 0 >
*.oponent .enemy =
*.robage 5 mod 0 =
*.venom 1 >
start
-3 6 1 add store
0 .shootval store
stop

cond
*.state .scaning =
*.eyef 0 >
*.robage 10 mod 0 =
*.oponent .alge =
*.venom 1 >
start
-3 6 1 add store
0 .shootval store
stop

cond
*.state .scaning =
*.eyef 0 >
*.robage 10 mod 1 =
*.oponent .alge =
*.venom 1 >
start
.setaim 6 1 add store
*.refxpos *.refypos angle 682 add .shootval store
stop

'================================================


'================================================
'----- Spread

cond
*.state .scaning =
*.state .torpedo = or
*.eyef 0 =
*.robage 20 mod 16 >=
*.robage 200 >= or
start
*.aim 35 add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eyef 0 =
*.robage 20 mod 16 <
*.robage 200 <
start
20 .dx store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eyef 0 !=
*.oponent .friend =
*.robage 20 mod 16 >=
*.robage 200 >= or
start
*.aim 35 add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eyef 0 !=
*.oponent .friend =
*.robage 20 mod 16 <
*.robage 200 <
start
20 .dx store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.robage 100 >=
*.robage 1000 <
*.eyef 0 =
*.robage 20 mod 10 >
start
20 .dx store
stop

'================================================


'================================================
'----- Aim

cond
*.state .scaning =
*.state .torpedo = or
*.eyef 0 =
*.robage 20 >
*.oponent .friend = and or
'*.eye1 0 >
start
*.aim *.eye1dir add .setaim 500 1 add * abs sgn mult store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eyef 0 =
*.robage 20 >
*.oponent .friend = and or
'*.eye2 0 >
start
*.aim *.eye2dir add .setaim 500 2 add * abs sgn mult store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eyef 0 =
*.robage 20 >
*.oponent .friend = and or
'*.eye3 0 >
start
*.aim *.eye3dir add .setaim 500 3 add * abs sgn mult store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eyef 0 =
*.robage 20 >
*.oponent .friend = and or
'*.eye4 0 >
start
*.aim *.eye4dir add .setaim 500 4 add * abs sgn mult store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eyef 0 =
*.robage 20 >
*.oponent .friend = and or
'*.eye5 0 >
start
*.aim *.eye5dir add .setaim 500 5 add * abs sgn mult store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eyef 0 =
*.robage 20 >
*.oponent .friend = and or
'*.eye6 0 >
start
*.aim *.eye6dir add .setaim 500 6 add * abs sgn mult store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eyef 0 =
*.robage 20 >
*.oponent .friend = and or
'*.eye7 0 >
start
*.aim *.eye7dir add .setaim 500 7 add * abs sgn mult store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eyef 0 =
*.robage 20 >
*.oponent .friend = and or
'*.eye8 0 >
start
*.aim *.eye8dir add .setaim 500 8 add * abs sgn mult store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eyef 0 >
*.oponent .friend =
*.in4 0 !=
*.in5 0 != or
*.in4 *.in5 dist 1000 <
start
*.in4 *.in5 angle .setaim store
20 .dx store
stop

'================================================


'================================================
'----- Reproduction

cond
*.state .scaning =
*.eyef 0 =
*.oponent .friend = or
*.nrg 3100 > or
*.nrg 300 >
*.body 100 > and
*.totalmyspecies 70 < and
*.nrg 500 >
*.body 100 > and
*.totalmyspecies 70 >= and or
*.repspin 0 =
start
*.robage 1 add .repspin store
stop

cond
*.robage 1 =
*.totalmyspecies 5 =
*.nrg 3000 %=
*.body 1000 =
start
*.robage 1 add .repspin store
stop

cond
*.state .scaning =
*.repspin 0 >
*.repspin 1 add *.robage =
start
*.aim 511 add .setaim store
0 .up store
0 .dx store
stop

cond
*.state .scaning =
*.repspin 0 >
*.repspin 2 add *.robage =
start
*.aim 341 add .setaim store
0 .up store
0 .dx store
stop

cond
*.state .scaning =
*.repspin 0 >
*.repspin 3 add *.robage =
start
*.aim 511 add .setaim store
0 .up store
0 .dx store
stop

cond
*.state .scaning =
*.repspin 15 add *.robage <
*.repspin 0 !=
start
0 .repspin store
stop

cond
*.state .scaning =
*.repspin 0 >
*.nrg 300 >
*.body 100 >
*.repspin 1 add *.robage =
*.repspin 2 add *.robage = or
*.totalmyspecies 70 <
*.eyef 0 =
*.oponent .friend = or
*.oponent .alge = or
start
32 .repro store
0 6 1 add store
stop

cond
*.state .scaning =
*.repspin 0 >
*.nrg 500 >
*.body 100 >
*.repspin 1 add *.robage =
*.repspin 2 add *.robage = or
*.totalmyspecies 70 >=
*.eyef 0 =
*.oponent .friend = or
*.oponent .alge = or
start
32 .repro store
0 6 1 add store
stop

cond
*.state .scaning =
*.repspin 0 >
*.oponent .enemy =
*.eyef 0 !=
*.nrg 300 >
*.body 100 >
*.repspin 1 add *.robage =
*.repspin 2 add *.robage = or
start
*.refxpos .birthx store
*.refypos .birthy store
.torpedo .birthstate store
5 .repro store
0 6 1 add store
stop

'================================================


'================================================
'----- Body and such + some defence stuff

cond
*.state .scaning =
*.nrg 200 >
*.body 500 <
*.totalmyspecies 70 > or
start
100 .strbody store
stop

cond
*.state .scaning =
*.nrg 100 <
*.body 20 >
start
100 .fdbody store
stop

cond
*.state .scaning =
*.shell 50 <
*.nrg 50 >
start
20 .mkshell store
stop

cond
*.state .scaning =
*.shell 200 <
*.nrg 180 >
*.body 120 >
start
200 *.shell sub .mkshell store
stop

cond
*.state .scaning =
*.venom 50 <
*.nrg 20 >
start
50 *.venom sub .strvenom store
stop

cond
*.state .scaning =
*.shell 300 <
*.nrg 200 >
*.body 100 >
*.eyef 0 >
*.oponent .enemy =
*.refvelscalar 20 > or
start
300 *.shell sub .mkshell store
stop

cond
*.state .scaning =
*.shflav 0 !=
*.shflav -2 !=
*.shflav -3 !=
*.nrg 80 >
*.venom 5 >
start
*.aim *.shang sub .setaim store
-3 6 1 add store
10 .shootval store
stop

cond
*.state .scaning =
*.shflav 0 !=
*.shflav -2 !=
*.shflav -3 !=
*.nrg 80 >
*.venom 5 <=
start
*.aim *.shang sub .setaim store
.setaim 6 1 add store
*.refaim 682 add .shootval store
stop

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

cond
*.state .scaning =
*.pain 60 >
*.shflav 0 !=
*.shflav -2 !=
start
*.maxvel .dx store
stop

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

start
.deltie inc
stop

'Not sure counter leeching is legal for F2
'If it isn't, then use the other tie value...
cond
*.numties 0 >
*.robage 1 >
*.tiepres 0 >
start
*.tiepres .tienum store
.tieval .tieloc store
31000 .tieval store
'0 .tieval store '-- This can be safer, helps against EtchII, but only delay's the inevitable.
*.tiepres .deltie store
stop

'================================================


'================================================
'----- Torpedoes

cond
*.state .scaning =
*.oponent .enemy =
*.eyef 0 !=
*.eyef 10 <
*.body 500 >
*.totalmyspecies 50 <
*.refshell 0 >
*.refshell *.refbody add *.refnrg add *.shell *.body add *.nrg add > '-not great...
start
*.refxpos .birthx store
*.refypos .birthy store
.torpedo .birthstate store
5 .repro store
0 6 1 add store
stop

cond
*.robage 1 >
*.body *.nrg add 200 <
*.oponent .alge !=
*.eyef 0 = or
start
.torpedo .state store
stop

cond
*.robage 0 =
*.state .torpedo =
start
*.birthx *.birthy angle .setaim store
stop

cond
*.state .torpedo =
*.body 1 >
start
*.body 10 mult 10 sub 0 floor .fdbody store
stop

cond
*.state .torpedo =
*.oponent .enemy =
*.numties 0 =
*.eyef 0 !=
start
*.refxpos *.refypos angle .setaim store
*.refxpos *.xpos sub abs *.refypos *.ypos sub abs pyth 10 div 30 sub 0 floor 100 ceil *.refvelup add .up store
*.refveldx .dx store
*.refvelsx .sx store
1 .tie store
.eye5dir .tieloc store
.spinoffset .spineyespace 4 mult add .tieval store
stop

cond
*.state .torpedo =
*.oponent .alge =
*.eyef 0 >
start
0 .up store
0 .dx store
0 .sx store
0 .tie store
*.aim *.eye8dir add .setaim store
stop

cond
*.state .torpedo =
*.toponent .enemy =
*.numties 0 >
*.robage 1 >
start
*.tiepres .tienum store
.locs 1 sub rnd 2 mult .startloc add dup * .tieloc store
1 add * .tieval store
40 .stifftie store
200 .fixlen store
*.trefxpos *.trefypos angle .setaim store
*.trefvelup .up store
*.trefveldx .dx store
0 .deltie store
stop

cond
*.state .torpedo =
*.toponent .friend =
*.numties 0 >
start
*.tiepres .deltie store
stop

start
.fixpos dec
stop

'================================================


'================================================
'----- Viral and mem defence.
'Haven't realy gotten around to make a propper defence.

cond
*.keyloc .startkey *.randm add !=
*.venval -2 != or
*.vloc .shoot != or
start
.startkey *.randm add .keyloc store
-2 .venval store
.shoot .vloc store
stop

cond
*.vtimer 0 !=
start
0 .vshoot store
stop

cond
*.repro 0 !=
*.repro 32 !=
*.repro 5 !=
start
0 .repro store
stop

cond
*.delgene 0 !=
*.delgene *.genekill !=
start
0 .delgene store
stop

'================================================

end

[b]The test alge :[/b]
[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']'Alge for testing your conspec
'If you can't get up close and feed on this
'Then your conspec is obviously vulnerable to these genes


cond
*.robage 0 =
start
.memloc .memloc store
.tmemloc .tmemloc store
100 .eye5width 1 mult store
stop

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

cond
*.memloc .memloc !=
*.memval 0 !=
start
*.memval *.memloc store
stop

cond
*.memloc .memloc !=
start
.memloc .memloc store
stop

cond
*.eyef 0 >
*.memloc .memloc =
*.memval 0 >
*.memval .memloc !=
start
*.memval .memloc store
stop

cond
*.tmemloc .tmemloc !=
*.tmemval 0 !=
start
*.tmemval *.tmemloc store
stop

cond
*.tmemloc .tmemloc !=
start
.tmemloc .tmemloc store
stop

cond
*.numties 0 >
*.tmemloc .tmemloc =
*.tmemval 0 >
*.tmemval .tmemloc !=
start
*.tmemval .tmemloc store
stop

cond
*.eyef 0 >
start
*.in1 .out1 store
*.in2 .out2 store
*.in3 .out3 store
*.in4 .out4 store
*.in5 .out5 store
*.in6 .out6 store
*.in7 .out7 store
*.in8 .out8 store
*.in9 .out9 store
*.in10 .out10 store
stop

cond
*.numties 0 >
start
*.tin1 .tout1 store
*.tin2 .tout2 store
*.tin3 .tout3 store
*.tin4 .tout4 store
*.tin5 .tout5 store
*.tin6 .tout6 store
*.tin7 .tout7 store
*.tin8 .tout8 store
*.tin9 .tout9 store
*.tin10 .tout10 store
stop

cond
*.eyef 0 >
start
*.refxpos *.refypos angle .setaim store
stop

cond
*.eyef 0 =
start
*.aim 70 add .setaim store
stop

cond
*.shflav 0 !=
*.shflav -2 !=
*.memloc .memloc =
start
*.aim *.shang sub .setaim store
0 .shflav store
stop


'--- Addapt shoot commands
cond
*.eyef 0 >
*.refshoot *.myshoot <
start
*.thisgene 1 add .delgene store

*.myshoot *.refshoot sub 1 >
*.thisgene 3 add .delgene store

*.myshoot *.refshoot sub 4 >
*.thisgene 4 add .delgene store

*.myshoot *.refshoot sub 9 >
*.thisgene 5 add .delgene store

*.myshoot *.refshoot sub 19 >
*.thisgene 6 add .delgene store

*.myshoot *.refshoot sub 39 >
*.thisgene 7 add .delgene store
stop

cond
0 1 =
start
0 .shoot store
stop

cond
0 1 =
start
0 .shoot store
stop

cond
0 1 =
start
0 .shoot store
0 .shoot store
stop

cond
0 1 =
start
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
stop

cond
0 1 =
start
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
stop

cond
0 1 =
start
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
stop

cond
0 1 =
start
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
stop


'--- Addapt eye commands
cond
*.eyef 0 >
*.refeye *.myeye <
start
*.thisgene 1 add .delgene store

*.myeye *.refeye sub 1 >
*.thisgene 3 add .delgene store

*.myeye *.refeye sub 4 >
*.thisgene 4 add .delgene store

*.myeye *.refeye sub 9 >
*.thisgene 5 add .delgene store

*.myeye *.refeye sub 19 >
*.thisgene 6 add .delgene store

*.myeye *.refeye sub 39 >
*.thisgene 7 add .delgene store
stop

cond
0 1 =
start
*.eye9 0 >
stop

cond
0 1 =
start
*.eye9 0 >
stop

cond
0 1 =
start
*.eye9 0 >
*.eye9 0 >
stop

cond
0 1 =
start
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
stop

cond
0 1 =
start
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
stop

cond
0 1 =
start
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
stop

cond
0 1 =
start
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
stop

end

18
F2 bots / Spinner v1.4 (F2) (Moonfisher) 01-05-08
« on: April 30, 2008, 09:26:31 PM »
No more easy conspecs if you want to beat spinner
No major changes appart from the conspec...
And replaced the conspec breaking tie action with one that causes mrepro, since there's no point stealing a bots key and then break it's conspec... or maybe there is... but wanted to take full advantage of the stolen key

I also included an alge that should allow you to test if your conspec is safe.
(It uses the same tricks as spinner)
If you can get up close and feed from it then your conspec should be relatively safe.

Spinner :
Code: [Select]
'Spinner v1.4 (F2) 01-05-08
'by Moonfisher
'Changed the conspec again
'Now it also steals simple conspecs
'Changed a few other small things
'But it's basicaly the same
'And tried making it a litle easyer to read.


'------------------- vars
def seteyes 50
def seteyewidth 51
def seteyespace 52
def setoffset 53

def state 54
def repspin 55

def randm 56
def keyloc 57

def oponent 58

def birthstate 971
def birthx 972
def birthy 973


'-------------------- constants
def spineyewidth 0
def spineyespace 105
def spinoffset 140

def scaning 1
def torpedo 2

'0 is nothing
def friend 13
def enemy 14
def alge 15

def key1 23
def key2 403
def key3 506
def key4 102
def key5 1053

def startkey 110
def startloc 120
def locs 5 '--- Must correcpond to the amount of different tie actions
'Set locs to 4 to disable instant kill using .shootval
'Set locs to 3 to disable .strbody killing aswell

'================================================
'----- Birth

cond
*.robage 0 =
start
4 rnd .randm store
.startkey *.randm add .keyloc store
.memloc .memloc store
.tmemloc .tmemloc store
.key1 .startkey store
.key2 .startkey 1 add store
.key3 .startkey 2 add store
.key4 .startkey 3 add store
.key5 .startkey 4 add store
'-------Tie actions (5)
.eye5dir .startloc store
682 .startloc 1 add store
.vloc .startloc 2 add store
174 .startloc 3 add store
'.memloc .startloc 4 add store '-- Funny, but no point in both stealing keys and breaking conspecs
'173 .startloc 5 add store
.mrepro .startloc 4 add store
50 .startloc 5 add store
.shootval .startloc 6 add store
31999 .startloc 7 add store
.strbody .startloc 8 add store
31999 .startloc 9 add store
.deltie inc
stop

cond
*.robage 0 =
*.birthstate 0 =
start
.scaning .state store
stop

cond
*.robage 0 =
*.birthstate 0 !=
*.state 0 =
start
*.birthstate .state store
stop

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

cond
*.robage 0 =
*.state .scaning =
start
1 .seteyes store
.spineyewidth .seteyewidth store
.spineyespace .seteyespace store
.spinoffset .setoffset store
.shoot .vloc store
-2 .venval store
.shoot .ploc store
stop

cond
*.robage 0 =
*.state .torpedo =
start
1 .seteyes store
.spineyewidth .seteyewidth store
.spineyespace .seteyespace store
.spinoffset .setoffset store
.shoot .vloc store
-2 .venval store
.shoot .ploc store
stop

cond
*.seteyes 1 =
start
*.setoffset .eye9dir store
*.setoffset *.seteyespace add .eye8dir store
*.setoffset *.seteyespace 2 mult add .eye7dir store
*.setoffset *.seteyespace 3 mult add .eye6dir store
*.setoffset *.seteyespace 4 mult add .eye5dir store
*.setoffset *.seteyespace 5 mult add .eye4dir store
*.setoffset *.seteyespace 6 mult add .eye3dir store
*.setoffset *.seteyespace 7 mult add .eye2dir store
*.setoffset *.seteyespace 8 mult add .eye1dir store
4 .focuseye store
0 .seteyes store
stop

'================================================


'================================================
'----- Conspec

start
*.keyloc .out9 store
*.keyloc * .out8 store
stop

cond
*.numties 0 >
start
*.keyloc .tout9 store
*.keyloc * .tout8 store
stop

cond
*.eye9 0 >
*.in8 *.in9 * =
*.in9 * 0 !=
start
.friend .oponent store
stop

cond
*.eye9 0 >
*.in8 *.in9 * !=
*.in9 * 0 = or
start
.enemy .oponent store
stop

cond
*.refeye 0 =
*.refshoot 0 =
*.refshell 0 =
*.revenom 0 =
*.refpoison 0 =
*.refvenom 0 =
*.eye9 0 >
start
.alge .oponent store
stop

cond
*.eye9 0 =
*.robage 0 = or
start
0 .oponent store
stop

'----- Poser conspecs
cond
*.memloc .memloc !=
*.memval 0 !=
start
*.memval *.memloc store
stop

cond
*.memloc .memloc !=
start
.memloc .memloc store
stop

cond
*.eye9 0 >
*.memloc .memloc =
*.memval 0 >
*.memval .memloc !=
start
*.memval .memloc store
stop

cond
*.tmemloc .tmemloc !=
*.tmemval 0 !=
start
*.tmemval *.tmemloc store
stop

cond
*.tmemloc .tmemloc !=
start
.tmemloc .tmemloc store
stop

cond
*.numties 0 >
*.tmemloc .tmemloc =
*.tmemval 0 >
*.tmemval .tmemloc !=
start
*.tmemval .tmemloc store
stop

cond
*.eye9 0 >
*.in8 *.in9 * !=
*.in9 * 0 = or
start
*.in1 .out1 store
*.in2 .out2 store
*.in3 .out3 store
*.in4 .out4 store
*.in5 .out5 store
*.in6 .out6 store
*.in7 .out7 store
*.in10 .out10 store
stop

cond
*.numties 0 >
*.tin8 *.tin9 * !=
*.tin9 * 0 = or
start
*.tin1 .tout1 store
*.tin2 .tout2 store
*.tin3 .tout3 store
*.tin4 .tout4 store
*.tin5 .tout5 store
*.tin6 .tout6 store
*.tin7 .tout7 store
*.tin10 .tout10 store
stop

'================================================

cond
*.state .torpedo =
*.oponent .alge =
*.nrg 500 >
start
.scaning .state store
stop

'================================================
'----- Shooting

cond
*.state .scaning =
*.eye9 0 >
*.oponent .enemy =
*.oponent .alge = or
start
*.refxpos *.refypos angle .setaim store
*.refxpos *.xpos sub abs *.refypos *.ypos sub abs pyth 5 div 30 sub 0 floor 100 ceil *.refvelup add .up store
*.refveldx .dx store
-6 .shoot store
*.refxpos .out4 store
*.refypos .out5 store
stop

cond
*.poisoned 0 =
*.body 50 >
*.state .scaning =
*.eye9 55 >
*.oponent .enemy =
*.oponent .alge = or
start
*.nrg 30 div 20 ceil *.eye9 40 sub 0 floor sgn *.body 40 sub 0 floor sgn mult mult 1 floor .shootval store
stop

cond
*.eye9 0 =
*.oponent .friend = or
*.out4 0 !=
*.out5 0 != or
start
0 .out4 store
0 .out5 store
stop

cond
*.state .scaning =
*.eye9 0 >
*.oponent .enemy =
*.robage 5 mod 0 =
*.venom 1 >
start
-3 .shoot store
0 .shootval store
stop

cond
*.state .scaning =
*.eye9 0 >
*.robage 10 mod 0 =
*.oponent .alge =
*.venom 1 >
start
-3 .shoot store
0 .shootval store
stop

cond
*.state .scaning =
*.eye9 0 >
*.robage 10 mod 1 =
*.oponent .alge =
*.venom 1 >
start
.setaim .shoot store
*.refxpos *.refypos angle 682 add .shootval store
stop

'================================================


'================================================
'----- Spread

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 mod 16 >=
*.robage 200 >= or
start
*.aim 35 add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 mod 16 <
*.robage 200 <
start
20 .dx store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 !=
*.oponent .friend =
*.robage 20 mod 16 >=
*.robage 200 >= or
start
*.aim 35 add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 !=
*.oponent .friend =
*.robage 20 mod 16 <
*.robage 200 <
start
20 .dx store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.robage 100 >=
*.robage 1000 <
*.eye9 0 =
*.robage 20 mod 10 >
start
20 .dx store
stop

'================================================


'================================================
'----- Aim

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 >
*.oponent .friend = and or
*.eye1 0 >
start
*.aim *.eye1dir add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 >
*.oponent .friend = and or
*.eye2 0 >
start
*.aim *.eye2dir add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 >
*.oponent .friend = and or
*.eye3 0 >
start
*.aim *.eye3dir add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 >
*.oponent .friend = and or
*.eye4 0 >
start
*.aim *.eye4dir add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 >
*.oponent .friend = and or
*.eye5 0 >
start
*.aim *.eye5dir add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 >
*.oponent .friend = and or
*.eye6 0 >
start
*.aim *.eye6dir add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 >
*.oponent .friend = and or
*.eye7 0 >
start
*.aim *.eye7dir add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 >
*.oponent .friend = and or
*.eye8 0 >
start
*.aim *.eye8dir add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 >
*.oponent .friend =
*.in4 0 !=
*.in5 0 != or
*.in4 *.in5 dist 1000 <
start
*.in4 *.in5 angle .setaim store
20 .dx store
stop

'================================================


'================================================
'----- Reproduction

cond
*.state .scaning =
*.eye9 0 =
*.oponent .friend = or
*.nrg 3100 > or
*.nrg 300 >
*.body 100 > and
*.totalmyspecies 70 < and
*.nrg 500 >
*.body 100 > and
*.totalmyspecies 70 >= and or
*.repspin 0 =
start
*.robage 1 add .repspin store
stop

cond
*.robage 1 =
*.totalmyspecies 5 =
*.nrg 3000 %=
*.body 1000 =
start
*.robage 1 add .repspin store
stop

cond
*.state .scaning =
*.repspin 0 >
*.repspin 1 add *.robage =
start
*.aim 511 add .setaim store
0 .up store
0 .dx store
stop

cond
*.state .scaning =
*.repspin 0 >
*.repspin 2 add *.robage =
start
*.aim 341 add .setaim store
0 .up store
0 .dx store
stop

cond
*.state .scaning =
*.repspin 0 >
*.repspin 3 add *.robage =
start
*.aim 511 add .setaim store
0 .up store
0 .dx store
stop

cond
*.state .scaning =
*.repspin 15 add *.robage <
*.repspin 0 !=
start
0 .repspin store
stop

cond
*.state .scaning =
*.repspin 0 >
*.nrg 300 >
*.body 100 >
*.repspin 1 add *.robage =
*.repspin 2 add *.robage = or
*.totalmyspecies 70 <
*.eye9 0 =
*.oponent .friend = or
*.oponent .alge = or
start
32 .repro store
0 .shoot store
stop

cond
*.state .scaning =
*.repspin 0 >
*.nrg 500 >
*.body 100 >
*.repspin 1 add *.robage =
*.repspin 2 add *.robage = or
*.totalmyspecies 70 >=
*.eye9 0 =
*.oponent .friend = or
*.oponent .alge = or
start
32 .repro store
0 .shoot store
stop

cond
*.state .scaning =
*.repspin 0 >
*.oponent .enemy =
*.eye9 0 !=
*.nrg 300 >
*.body 100 >
*.repspin 1 add *.robage =
*.repspin 2 add *.robage = or
start
*.refxpos .birthx store
*.refypos .birthy store
.torpedo .birthstate store
5 .repro store
0 .shoot store
stop

'================================================


'================================================
'----- Body and such + some defence stuff

cond
*.state .scaning =
*.nrg 200 >
*.body 500 <
*.totalmyspecies 70 > or
start
100 .strbody store
stop

cond
*.state .scaning =
*.nrg 100 <
*.body 20 >
start
100 .fdbody store
stop

cond
*.state .scaning =
*.shell 50 <
*.nrg 50 >
start
20 .mkshell store
stop

cond
*.state .scaning =
*.shell 200 <
*.nrg 180 >
*.body 120 >
start
200 *.shell sub .mkshell store
stop

cond
*.state .scaning =
*.venom 50 <
*.nrg 20 >
start
50 *.venom sub .strvenom store
stop

cond
*.state .scaning =
*.shell 300 <
*.nrg 200 >
*.body 100 >
*.eye9 0 >
*.oponent .enemy =
*.refvelscalar 20 > or
start
300 *.shell sub .mkshell store
stop

cond
*.state .scaning =
*.shflav 0 !=
*.shflav -2 !=
*.shflav -3 !=
*.nrg 80 >
*.venom 5 >
start
*.shang .setaim store
-3 .shoot store
10 .shootval store
stop

cond
*.state .scaning =
*.shflav 0 !=
*.shflav -2 !=
*.shflav -3 !=
*.nrg 80 >
*.venom 5 <=
start
*.shang .setaim store
.setaim .shoot store
*.refaim 682 add .shootval store
stop

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

cond
*.state .scaning =
*.pain 60 >
*.shflav 0 !=
*.shflav -2 !=
start
*.maxvel .dx store
stop

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

start
.deltie inc
stop

'Not sure counter leeching is legal for F2
'If it isn't, then use the other tie value...
cond
*.numties 0 >
*.robage 1 >
*.tiepres 0 >
start
*.tiepres .tienum store
.tieval .tieloc store
31000 .tieval store
'0 .tieval store '-- This can be safer, helps against EtchII, but only delay's the inevitable.
*.tiepres .deltie store
stop

'================================================


'================================================
'----- Torpedoes

cond
*.state .scaning =
*.oponent .enemy =
*.eye9 0 !=
*.eye9 10 <
*.body 500 >
*.totalmyspecies 50 <
*.refshell 0 >
*.refshell *.refbody add *.refnrg add *.shell *.body add *.nrg add > '-not great...
start
*.refxpos .birthx store
*.refypos .birthy store
.torpedo .birthstate store
5 .repro store
0 .shoot store
stop

cond
*.robage 1 >
*.body *.nrg add 200 <
*.oponent .alge !=
*.eye9 0 = or
start
.torpedo .state store
stop

cond
*.robage 0 =
*.state .torpedo =
start
*.birthx *.birthy angle .setaim store
stop

cond
*.state .torpedo =
*.body 1 >
start
*.body 10 mult 10 sub 0 floor .fdbody store
stop

cond
*.state .torpedo =
*.oponent .enemy =
*.numties 0 =
*.eye9 0 !=
start
*.refxpos *.refypos angle .setaim store
*.refxpos *.xpos sub abs *.refypos *.ypos sub abs pyth 10 div 30 sub 0 floor 100 ceil *.refvelup add .up store
*.refveldx .dx store
*.refvelsx .sx store
1 .tie store
.eye5dir .tieloc store
.spinoffset .spineyespace 4 mult add .tieval store
stop

cond
*.state .torpedo =
*.oponent .alge =
*.eye9 0 >
start
0 .up store
0 .dx store
0 .sx store
0 .tie store
*.aim *.eye8dir add .setaim store
stop

cond
*.state .torpedo =
*.tin8 *.tin9 * !=
*.tin9 * 0 = or
*.numties 0 >
*.robage 0 >
start
*.tiepres .tienum store
.locs 1 sub rnd 2 mult .startloc add dup * .tieloc store
1 add * .tieval store
40 .stifftie store
200 .fixlen store
*.trefxpos *.trefypos angle .setaim store
*.trefvelup .up store
*.trefveldx .dx store
0 .deltie store
stop

cond
*.state .torpedo =
*.tin8 *.tin9 * =
*.tin9 * 0 !=
*.numties 0 >
start
*.tiepres .deltie store
stop

start
.fixpos dec
stop

'================================================


'================================================
'----- Viral and mem defence.
'Haven't realy gotten around to make a propper defence.

cond
*.keyloc .startkey *.randm add !=
*.venval -2 != or
*.vloc .shoot != or
start
.startkey *.randm add .keyloc store
-2 .venval store
.shoot .vloc store
stop

cond
*.vtimer 0 !=
start
0 .vshoot store
stop

cond
*.repro 0 !=
*.repro 32 !=
*.repro 5 !=
start
0 .repro store
stop

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

'================================================

end

[b]The test alge :[/b]
[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']'Alge for testing your conspec
'If you can't get up close and feed on this
'Then your conspec is obviously vulnerable to these genes

cond
*.robage 0 =
start
.memloc .memloc store
.tmemloc .tmemloc store
100 .eye5width store
stop

cond
*.memloc .memloc !=
*.memval 0 !=
start
*.memval *.memloc store
stop

cond
*.memloc .memloc !=
start
.memloc .memloc store
stop

cond
*.eye9 0 >
*.memloc .memloc =
*.memval 0 >
*.memval .memloc !=
start
*.memval .memloc store
stop

cond
*.tmemloc .tmemloc !=
*.tmemval 0 !=
start
*.tmemval *.tmemloc store
stop

cond
*.tmemloc .tmemloc !=
start
.tmemloc .tmemloc store
stop

cond
*.numties 0 >
*.tmemloc .tmemloc =
*.tmemval 0 >
*.tmemval .tmemloc !=
start
*.tmemval .tmemloc store
stop

cond
*.eyef 0 >
start
*.in1 .out1 store
*.in2 .out2 store
*.in3 .out3 store
*.in4 .out4 store
*.in5 .out5 store
*.in6 .out6 store
*.in7 .out7 store
*.in8 .out8 store
*.in9 .out9 store
*.in10 .out10 store
stop

cond
*.numties 0 >
start
*.tin1 .tout1 store
*.tin2 .tout2 store
*.tin3 .tout3 store
*.tin4 .tout4 store
*.tin5 .tout5 store
*.tin6 .tout6 store
*.tin7 .tout7 store
*.tin8 .tout8 store
*.tin9 .tout9 store
*.tin10 .tout10 store
stop

cond
*.eyef 0 =
start
*.aim 70 add .setaim store
stop

cond
*.shflav 0 !=
start
*.shang - *.aim add .setaim store
0 .shflav store
stop

end

19
F2 bots / Spinner v1.3 (F2) (Moonfisher) 27-04-08
« on: April 27, 2008, 09:52:34 AM »
It needed some tweeks, works a lot better now...
It's starting to get big and a litle messy, I'll work on some structure next time, make it easyer to read.

Code: [Select]
'Spinner v1.3 (F2) 27-04-08
'by Moonfisher
'Mostly a tweek of v1.2
'Torpedoes improved
'Alge feeding improved


'------------------- vars
def seteyes 50
def seteyewidth 51
def seteyespace 52
def setoffset 53

def state 54
def repspin 55

def randm 56
def keyloc 57

def alge 58

def birthstate 971
def birthx 972
def birthy 973


'-------------------- constants
def spineyewidth 0
def spineyespace 105
def spinoffset 140

def scaning 1
def torpedo 2

def key1 23
def key2 403
def key3 506
def key4 102
def key5 1053

def startkey 110
def startloc 120
def locs 5 '--- Must correcpond to the amount of different tie actions
'Set locs to 4 to disable instant kill using .shootval
'Set locs to 3 to disable .strbody killing aswell

cond
*.memval 0 =
*.refeye 0 =
*.refshoot 0 =
*.refshell 0 =
*.revenom 0 =
*.refpoison 0 =
*.refvenom 0 =
*.eye9 0 >
start
1 .alge store
stop

cond
*.state .torpedo =
*.alge 1 =
*.nrg 500 >
start
.scaning .state store
stop

cond
*.robage 0 =
start
4 rnd .randm store
.startkey *.randm add .keyloc store
.startkey *.randm add .memloc store
.startkey *.randm add .tmemloc store
.key1 .startkey store
.key2 .startkey 1 add store
.key3 .startkey 2 add store
.key4 .startkey 3 add store
.key5 .startkey 4 add store
'-------Tie actions (5)
.eye5dir .startloc store
682 .startloc 1 add store
.vloc .startloc 2 add store
174 .startloc 3 add store
.memloc .startloc 4 add store
173 .startloc 5 add store
.shootval .startloc 6 add store
31999 .startloc 7 add store
.strbody .startloc 8 add store
31999 .startloc 9 add store
stop

cond
*.robage 0 =
*.birthstate 0 =
start
.scaning .state store
stop

cond
*.robage 0 =
*.birthstate 0 !=
*.state 0 =
start
*.birthstate .state store
stop

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

cond
*.robage 0 =
*.state .scaning =
start
1 .seteyes store
.spineyewidth .seteyewidth store
.spineyespace .seteyespace store
.spinoffset .setoffset store
.shoot .vloc store
-2 .venval store
.shoot .ploc store
stop

cond
*.robage 0 =
*.state .torpedo =
start
1 .seteyes store
.spineyewidth .seteyewidth store
.spineyespace .seteyespace store
.spinoffset .setoffset store
.shoot .vloc store
-2 .venval store
.shoot .ploc store
stop

cond
*.seteyes 1 =
start
*.setoffset .eye9dir store
*.setoffset *.seteyespace add .eye8dir store
*.setoffset *.seteyespace 2 mult add .eye7dir store
*.setoffset *.seteyespace 3 mult add .eye6dir store
*.setoffset *.seteyespace 4 mult add .eye5dir store
*.setoffset *.seteyespace 5 mult add .eye4dir store
*.setoffset *.seteyespace 6 mult add .eye3dir store
*.setoffset *.seteyespace 7 mult add .eye2dir store
*.setoffset *.seteyespace 8 mult add .eye1dir store
4 .focuseye store
0 .seteyes store
stop

cond
*.state .scaning =
*.eye9 0 >
*.memval *.keyloc * !=
start
*.refxpos *.refypos angle .setaim store
*.refxpos *.xpos sub abs *.refypos *.ypos sub abs pyth 5 div 30 sub 0 floor 100 ceil *.refvelup add .up store
*.refveldx .dx store
-6 .shoot store
*.refxpos .out4 store
*.refypos .out5 store
stop

cond
*.body 50 >
*.state .scaning =
*.eye9 55 >
*.memval *.keyloc * !=
start
*.nrg 30 div 20 ceil *.eye9 40 sub 0 floor sgn *.body 40 sub 0 floor sgn mult mult 1 floor .shootval store
stop

cond
*.eye9 0 =
*.memval *.keyloc * = or
*.out4 0 !=
*.out5 0 != or
start
0 .out4 store
0 .out5 store
stop

cond
*.state .scaning =
*.eye9 0 >
*.memval *.keyloc * !=
*.robage 5 mod 0 =
*.alge 1 !=
*.venom 1 >
start
-3 .shoot store
0 .shootval store
stop

cond
*.state .scaning =
*.eye9 0 >
*.memval *.keyloc * !=
*.robage 10 mod 0 =
*.alge 1 =
*.venom 1 >
start
-3 .shoot store
0 .shootval store
stop

cond
*.state .scaning =
*.eye9 0 >
*.memval *.keyloc * !=
*.robage 10 mod 1 =
*.alge 1 =
*.venom 1 >
start
.setaim .shoot store
*.refxpos *.refypos angle 682 add .shootval store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 mod 16 >=
*.robage 200 >= or
start
*.aim 35 add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 mod 16 <
*.robage 200 <
start
20 .dx store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 !=
*.memval *.keyloc * =
*.robage 20 mod 16 >=
*.robage 200 >= or
start
*.aim 35 add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 !=
*.memval *.keyloc * =
*.robage 20 mod 16 <
*.robage 200 <
start
20 .dx store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.robage 100 >=
*.robage 1000 <
*.eye9 0 =
*.robage 20 mod 10 >
start
20 .dx store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 >
*.memval *.keyloc * = and or
*.eye1 0 >
start
*.aim *.eye1dir add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 >
*.memval *.keyloc * = and or
*.eye2 0 >
start
*.aim *.eye2dir add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 >
*.memval *.keyloc * = and or
*.eye3 0 >
start
*.aim *.eye3dir add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 >
*.memval *.keyloc * = and or
*.eye4 0 >
start
*.aim *.eye4dir add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 >
*.memval *.keyloc * = and or
*.eye5 0 >
start
*.aim *.eye5dir add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 >
*.memval *.keyloc * = and or
*.eye6 0 >
start
*.aim *.eye6dir add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 >
*.memval *.keyloc * = and or
*.eye7 0 >
start
*.aim *.eye7dir add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 >
*.memval *.keyloc * = and or
*.eye8 0 >
start
*.aim *.eye8dir add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 >
*.memval *.keyloc * =
*.in4 0 !=
*.in5 0 != or
*.in4 *.in5 dist 1000 <
start
*.in4 *.in5 angle .setaim store
20 .dx store
stop

cond
*.state .scaning =
*.eye9 0 =
*.memval *.keyloc * = or
*.nrg 3100 > or
*.nrg 300 >
*.body 100 > and
*.totalmyspecies 70 < and
*.nrg 500 >
*.body 100 > and
*.totalmyspecies 70 >= and or
*.repspin 0 =
start
*.robage 1 add .repspin store
stop

cond
*.robage 1 =
*.totalmyspecies 5 =
*.nrg 3000 %=
*.body 1000 =
start
*.robage 1 add .repspin store
stop

cond
*.state .scaning =
*.repspin 0 >
*.repspin 1 add *.robage =
start
*.aim 511 add .setaim store
0 .up store
0 .dx store
stop

cond
*.state .scaning =
*.repspin 0 >
*.repspin 2 add *.robage =
start
*.aim 341 add .setaim store
0 .up store
0 .dx store
stop

cond
*.state .scaning =
*.repspin 0 >
*.repspin 3 add *.robage =
start
*.aim 511 add .setaim store
0 .up store
0 .dx store
stop

cond
*.state .scaning =
*.repspin 15 add *.robage <
*.repspin 0 !=
start
0 .repspin store
stop

cond
*.state .scaning =
*.repspin 0 >
*.nrg 300 >
*.body 100 >
*.repspin 1 add *.robage =
*.repspin 2 add *.robage = or
*.totalmyspecies 70 <
*.eye9 0 =
*.memval *.keyloc * = or
*.alge 1 = or
start
32 .repro store
0 .shoot store
stop

cond
*.state .scaning =
*.repspin 0 >
*.nrg 500 >
*.body 100 >
*.repspin 1 add *.robage =
*.repspin 2 add *.robage = or
*.totalmyspecies 70 >=
*.eye9 0 =
*.memval *.keyloc * = or
*.alge 1 = or
start
32 .repro store
0 .shoot store
stop

cond
*.state .scaning =
*.repspin 0 >
*.alge 1 !=
*.memval *.keyloc * !=
*.eye9 0 !=
*.nrg 300 >
*.body 100 >
*.repspin 1 add *.robage =
*.repspin 2 add *.robage = or
start
*.refxpos .birthx store
*.refypos .birthy store
.torpedo .birthstate store
5 .repro store
0 .shoot store
stop

cond
*.state .scaning =
*.nrg 200 >
*.body 500 <
*.totalmyspecies 70 > or
start
*.nrg 200 sub 100 mult 100 floor .strbody store
stop

cond
*.state .scaning =
*.nrg 100 <
*.body 20 >
start
100 .fdbody store
stop

cond
*.state .scaning =
*.shell 50 <
*.nrg 50 >
start
20 .mkshell store
stop

cond
*.state .scaning =
*.shell 200 <
*.nrg 180 >
*.body 120 >
start
200 *.shell sub .mkshell store
stop

cond
*.state .scaning =
*.venom 50 <
*.nrg 20 >
start
50 *.venom sub .strvenom store
stop

cond
*.state .scaning =
*.shell 300 <
*.nrg 200 >
*.body 100 >
*.eye9 0 >
*.alge 1 !=
*.refvelscalar 20 > or
start
300 *.shell sub .mkshell store
stop

cond
*.state .scaning =
*.shflav 0 !=
*.shflav -2 !=
*.shflav -3 !=
*.nrg 80 >
*.venom 5 >
start
*.shang .setaim store
-3 .shoot store
10 .shootval store
stop

cond
*.state .scaning =
*.shflav 0 !=
*.shflav -2 !=
*.shflav -3 !=
*.nrg 80 >
*.venom 5 <=
start
*.shang .setaim store
.setaim .shoot store
*.refaim 682 add .shootval store
stop

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

cond
*.state .scaning =
*.pain 60 >
*.shflav 0 !=
*.shflav -2 !=
start
*.maxvel .dx store
stop

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

start
.deltie inc
stop

cond
*.numties 0 >
*.robage 1 >
*.tiepres 0 >
start
*.tiepres .tienum store
.tieval .tieloc store
31000 .tieval store
*.tiepres .deltie store
stop

'Wasn't sure the above was legal for F2
'If it isn't, then disable the gene above and use this
'cond
'*.numties 0 >
'*.robage 1 >
'*.tiepres 0 >
'start
'*.tiepres .tienum store
'.shoot .tieloc store
'-2 .tieval store
'*.tiepres .deltie store
'stop

'------------------------------------- Torpedo
cond
*.state .scaning =
*.memval *.keyloc * !=
*.eye9 0 !=
*.eye9 10 <
*.body 500 >
*.totalmyspecies 50 <
*.refshell 0 >
*.refshell *.refbody add *.refnrg add *.shell *.body add *.nrg add > '-not great...
start
*.refxpos .birthx store
*.refypos .birthy store
.torpedo .birthstate store
5 .repro store
0 .shoot store
stop

cond
*.robage 1 >
*.body *.nrg add 200 <
*.alge 1 !=
*.eye9 0 = or
start
.torpedo .state store
stop

cond
*.robage 0 =
*.state .torpedo =
start
*.birthx *.birthy angle .setaim store
stop

cond
*.state .torpedo =
*.body 1 >
start
*.body 10 mult 10 sub 0 floor .fdbody store
stop

cond
*.state .torpedo =
*.memval *.keyloc * !=
*.numties 0 =
*.eye9 0 !=
start
*.refxpos *.refypos angle .setaim store
*.refxpos *.xpos sub abs *.refypos *.ypos sub abs pyth 10 div 30 sub 0 floor 100 ceil *.refvelup add .up store
*.refveldx .dx store
*.refvelsx .sx store
1 .tie store
.eye5dir .tieloc store
.spinoffset .spineyespace 4 mult add .tieval store
stop

cond
*.state .torpedo =
*.alge 1 =
*.eye9 0 >
start
0 .up store
0 .dx store
0 .sx store
0 .tie store
*.aim *.eye8dir add .setaim store
stop

cond
*.state .torpedo =
*.tmemval *.keyloc * !=
*.numties 0 >
start
*.tiepres .tienum store
.locs 1 sub rnd 2 mult .startloc add dup * .tieloc store
1 add * .tieval store
40 .stifftie store
200 .fixlen store
*.trefxpos *.trefypos angle .setaim store
*.trefvelup .up store
*.trefveldx .dx store
0 .deltie store
stop

cond
*.state .torpedo =
*.tmemval *.keyloc * =
*.numties 0 >
start
*.tiepres .deltie store
stop

start
.fixpos dec
.alge dec
stop

'--------------------------
'Viral and mem defence.
'Haven't realy gotten around to make a propper defence.

cond
*.keyloc .startkey *.randm add !=
*.memloc .startkey *.randm add != or
*.memloc .startkey *.randm add != or
*.venval -2 != or
*.vloc .shoot != or
start
.startkey *.randm add .keyloc store
.startkey *.randm add .memloc store
.startkey *.randm add .tmemloc store
-2 .venval store
.shoot .vloc store
stop

cond
*.vtimer 0 !=
start
0 .vshoot store
stop

cond
*.repro 0 !=
*.repro 32 !=
*.repro 5 !=
'*.repro 98 !=
start
0 .repro store
stop

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

end

20
Bug reports / missing DLL RESOLVED (POSTPONED)
« on: April 20, 2008, 07:28:40 AM »
I get a crash when I try to adjust coustom costs, been having this problem for a while.
It mentions a missing dll so I'm guessing maybe I just managed to screw sometihng up...
So maybe I just need to reinstall DB, but figured I'd mention it in case it's a general problem.
Took a screenshot of the error.

21
Bug reports / *.poison is always zero RESOLVED 2.43.1k
« on: April 19, 2008, 11:00:48 AM »
Just noticed all my bots produce poison non stop... and it seems like it may also be whats causing Excalibur to fall appart... not sure if *.shell is actualy broken aswell... but it seems like *.poison is...
Don't have a case or anything, poison just return 0 in the console even if you have some... if you wan't a sim or bot to test it I'll find something...

22
DNA - General / Neural nets and mutations
« on: April 15, 2008, 05:09:17 PM »
Is there a way to set point mutations to affect values far more often than opperators ?
I'm trying to evolve a neural network with point mutations, but it keeps breaking down the structure.
For instance if it produces no shell the output for shell could mutate it's store to an inc, and this would have a more noticable effect.
This would help the new bot survive but would also destroy the network leading to that output and prevent the chances for a more balanced shell management to evolve through the network.
I'd basicaly like to make the point mutations only affect values and not operators, if possible, or atleast balance it to something like 1 change of an operator for every 10000 value mutations.
It would also be usefull for evolving league bots to tweek their constants.
So if you're going to be messing with mutations anyway  

23
Untagged bots / Spinner v1.2 (F2) (Moonfisher) 14-04-08
« on: April 14, 2008, 04:22:14 PM »
Think this could be able to beat F2. (Except for lovebot)
It uses small bots as "torpedoes".
It also has a better conspec now.
Appart from that same old spinner.

The "torpedoes" use ties, initial thought was to boost a single shot to instant kill, but that didn't quite work, venom wasn't great either, ties was the best way I could find.
They also kill with the ties if locs is set to 5, if you set it to 3 it'll only use confusion.
The 3 confusion thingies are easy to secure against though... but everything has a counter move and it's fun to see how easy it can be to render a strong bot harmless with a simple action.

I guess I could always build lovebot into this thing to give it an extra boost, but I like the way a simple rape bot that does virtualy nothing else can be so tough
But I'm not so sure raping should be allowed in F2... it's not far from using a virus, you need to get in close and the oponent needs space to reproduce... but still... you can get controll over the alge way too fast and you can SG'fy your bot at take over oponents completely.
Seems overpowered for F2... it's ok for F1 I guess, but it seems far more potent than viruses, so I hate to pick on my own bot, but I don't think lovebot belongs in F2   

But this one still has no sexrepro... yet anyway...

Code: [Select]
'Spinner v1.2 (F2) 14-04-08
'by Moonfisher
'Added some small "torpedoes" to cause some confusion
'They also kill with ties, but it can be disabled below (the locs constant)
'Also changed the conspec


'------------------- vars
def seteyes 50
def seteyewidth 51
def seteyespace 52
def setoffset 53

def state 54
def repspin 55

def randm 56
def keyloc 57

def birthstate 971
def birthx 972
def birthy 973


'-------------------- constants
def spineyewidth 0
def spineyespace 105
def spinoffset 140

def scaning 1
def torpedo 2

def key1 23
def key2 403
def key3 506
def key4 102
def key5 1053

def startkey 110
def startloc 120
def locs 5 '--- Must correcpond to the amount of different tie actions
'Set locs to 4 to disable instant kill using .shootval
'Set locs to 3 to disable .strbody killing aswell


cond
*.robage 0 =
start
4 rnd .randm store
.startkey *.randm add .keyloc store
.startkey *.randm add .memloc store
.startkey *.randm add .tmemloc store
.key1 .startkey store
.key2 .startkey 1 add store
.key3 .startkey 2 add store
.key4 .startkey 3 add store
.key5 .startkey 4 add store
'-------Tie actions (5)
.eye5dir .startloc store
682 .startloc 1 add store
.vloc .startloc 2 add store
174 .startloc 3 add store
.memloc .startloc 4 add store
173 .startloc 5 add store
.shootval .startloc 6 add store
31999 .startloc 7 add store
.strbody .startloc 8 add store
31999 .startloc 9 add store
stop

cond
*.robage 0 =
*.birthstate 0 =
start
.scaning .state store
stop

cond
*.robage 0 =
*.birthstate 0 !=
*.state 0 =
start
*.birthstate .state store
stop

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

cond
*.robage 0 =
*.state .scaning =
start
1 .seteyes store
.spineyewidth .seteyewidth store
.spineyespace .seteyespace store
.spinoffset .setoffset store
.shoot .vloc store
-2 .venval store
.shoot .ploc store
stop

cond
*.robage 0 =
*.state .torpedo =
start
1 .seteyes store
.spineyewidth .seteyewidth store
.spineyespace .seteyespace store
.spinoffset .setoffset store
.shoot .vloc store
-2 .venval store
.shoot .ploc store
stop

cond
*.seteyes 1 =
start
*.setoffset .eye9dir store
*.setoffset *.seteyespace add .eye8dir store
*.setoffset *.seteyespace 2 mult add .eye7dir store
*.setoffset *.seteyespace 3 mult add .eye6dir store
*.setoffset *.seteyespace 4 mult add .eye5dir store
*.setoffset *.seteyespace 5 mult add .eye4dir store
*.setoffset *.seteyespace 6 mult add .eye3dir store
*.setoffset *.seteyespace 7 mult add .eye2dir store
*.setoffset *.seteyespace 8 mult add .eye1dir store
4 .focuseye store
0 .seteyes store
stop

cond
*.state .scaning =
*.eye9 0 >
*.memval *.keyloc * !=
start
*.refxpos *.refypos angle .setaim store
*.refxpos *.xpos sub abs *.refypos *.ypos sub abs pyth 5 div 30 sub 0 floor 100 ceil *.refvelup add .up store
*.refveldx .dx store
-6 .shoot store
*.nrg 30 div 20 ceil *.eye9 40 sub 0 floor sgn *.body 40 sub 0 floor sgn mult mult .shootval store
*.refxpos .out4 store
*.refypos .out5 store
stop

cond
*.eye9 0 =
*.memval *.keyloc * = or
*.out4 0 !=
*.out5 0 != or
start
0 .out4 store
0 .out5 store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 >
*.memval *.keyloc * !=
*.robage 5 mod 0 =
*.venom 1 >
start
-3 .shoot store
0 .shootval store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 mod 16 >=
*.robage 200 >= or
start
*.aim 35 add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 mod 16 <
*.robage 200 <
start
20 .dx store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 !=
*.memval *.keyloc * =
*.robage 20 mod 16 >=
*.robage 200 >= or
start
*.aim 35 add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 !=
*.memval *.keyloc * =
*.robage 20 mod 16 <
*.robage 200 <
start
20 .dx store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.robage 100 >=
*.robage 1000 <
*.eye9 0 =
*.robage 20 mod 10 >
start
20 .dx store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 >
*.memval *.keyloc * = and or
*.eye1 0 >
start
*.aim *.eye1dir add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 >
*.memval *.keyloc * = and or
*.eye2 0 >
start
*.aim *.eye2dir add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 >
*.memval *.keyloc * = and or
*.eye3 0 >
start
*.aim *.eye3dir add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 >
*.memval *.keyloc * = and or
*.eye4 0 >
start
*.aim *.eye4dir add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 >
*.memval *.keyloc * = and or
*.eye5 0 >
start
*.aim *.eye5dir add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 >
*.memval *.keyloc * = and or
*.eye6 0 >
start
*.aim *.eye6dir add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 >
*.memval *.keyloc * = and or
*.eye7 0 >
start
*.aim *.eye7dir add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 =
*.robage 20 >
*.memval *.keyloc * = and or
*.eye8 0 >
start
*.aim *.eye8dir add .setaim store
stop

cond
*.state .scaning =
*.state .torpedo = or
*.eye9 0 >
*.memval *.keyloc * =
*.in4 0 !=
*.in5 0 != or
*.in4 *.in5 dist 1000 <
start
*.in4 *.in5 angle .setaim store
20 .dx store
stop

cond
*.state .scaning =
*.eye9 0 =
*.memval *.keyloc * = or
*.nrg 3100 > or
*.nrg 300 >
*.body 100 > and
*.totalmyspecies 70 < and
*.nrg 500 >
*.body 100 > and
*.totalmyspecies 70 >= and or
*.repspin 0 =
start
*.robage 1 add .repspin store
stop

cond
*.state .scaning =
*.repspin 1 add *.robage =
start
*.aim 511 add .setaim store
0 .up store
0 .dx store
stop

cond
*.state .scaning =
*.repspin 2 add *.robage =
start
*.aim 341 add .setaim store
0 .up store
0 .dx store
stop

cond
*.state .scaning =
*.repspin 3 add *.robage =
start
*.aim 511 add .setaim store
0 .up store
0 .dx store
stop

cond
*.state .scaning =
*.repspin 15 add *.robage <
*.repspin 0 !=
start
0 .repspin store
stop

cond
*.state .scaning =
*.nrg 300 >
*.body 100 >
*.repspin 1 add *.robage =
*.repspin 2 add *.robage = or
*.totalmyspecies 70 <
start
32 .repro store
stop

cond
*.state .scaning =
*.nrg 500 >
*.body 100 >
*.repspin 1 add *.robage =
*.repspin 2 add *.robage = or
*.totalmyspecies 70 >=
start
32 .repro store
stop

cond
*.state .scaning =
*.nrg 200 >
*.body 500 <
*.totalmyspecies 70 > or
start
100 .strbody store
stop

cond
*.state .scaning =
*.nrg 100 <
*.body 20 >
start
50 .fdbody store
stop

cond
*.state .scaning =
*.shell 50 <
*.nrg 50 >
start
20 .mkshell store
stop

cond
*.state .scaning =
*.shell 200 <
*.nrg 200 >
*.body 120 >
start
50 .mkshell store
stop

cond
*.state .scaning =
*.venom 50 <
*.nrg 20 >
start
10 .strvenom store
stop

cond
*.state .scaning =
*.shell 300 <
*.nrg 200 >
*.body 100 >
*.eye9 0 >
*.refeye 0 !=
*.refshoot 0 != or
*.refshell 0 != or
*.refpoison 0 != or
*.refvenom 0 != or
*.refvelscalar 20 > or
start
300 *.shell sub .mkshell store
stop

cond
*.state .scaning =
*.shflav 0 !=
*.shflav -2 !=
*.shflav -3 !=
*.nrg 80 >
*.venom 5 >
start
*.shang .setaim store
-3 .shoot store
10 .shootval store
stop

cond
*.state .scaning =
*.shflav 0 !=
*.shflav -2 !=
*.shflav -3 !=
*.nrg 80 >
*.venom 5 <=
start
*.shang .setaim store
.setaim .shoot store
*.refaim 682 add .shootval store
stop

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

cond
*.state .scaning =
*.pain 60 >
*.shflav 0 !=
*.shflav -2 !=
start
*.maxvel .dx store
stop

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

cond
*.numties 0 >
*.trefbody *.body >=
*.trefnrg *.nrg >= or
start
*.tiepres .tienum store
.tieval .tieloc store
1000 .tieval store
*.tiepres .deltie store
stop

'Wasn't sure the above was legal for F2
'If it is, then disable the gene above and always use this
cond
*.numties 0 >
*.trefbody *.body <
*.trefnrg *.nrg <
start
*.tiepres .tienum store
.shoot .tieloc store
-2 .tieval store
*.tiepres .deltie store
stop

'------------------------------------- Torpedo
cond
*.state .scaning =
*.memval *.keyloc * !=
*.eye9 0 !=
*.body 150 >
*.totalmyspecies 50 <
*.refshell 0 >
*.refshell *.refbody add *.refnrg add *.shell *.body add *.nrg add >
start
*.refxpos .birthx store
*.refypos .birthy store
.torpedo .birthstate store
5 .repro store
stop

cond
*.robage 1 >
*.body *.nrg add 150 <
start
.torpedo .state store
stop

cond
*.robage 0 =
*.state .torpedo =
start
*.birthx *.birthy angle .setaim store
stop

cond
*.state .torpedo =
*.body 1 >
start
*.body 10 mult 10 sub 0 floor .fdbody store
stop

cond
*.state .torpedo =
*.memval *.keyloc * !=
*.numties 0 =
*.eye5 0 !=
start
*.refxpos *.refypos angle .setaim store
*.refxpos *.xpos sub abs *.refypos *.ypos sub abs pyth 10 div 30 sub 0 floor 100 ceil *.refvelup add .up store
*.refveldx .dx store
*.refvelsx .sx store
1 .tie store
.eye5dir .tieloc store
.spinoffset .spineyespace 4 mult add .tieval store
stop

cond
*.state .torpedo =
*.memval 0 =
*.refeye 0 =
*.refshoot 0 =
*.reftie 0 =
*.refshell 0 =
*.revenom 0 =
*.refaim 0 =
*.refpoison 0 =
*.refvenom 0 =
*.refkills 0 =
start
0 .up store
0 .dx store
0 .sx store
0 .tie store
*.aim *.eye8dir add .setaim store
stop

cond
*.state .torpedo =
*.tmemval *.keyloc * !=
*.numties 0 >
start
*.tiepres .tienum store
.locs 1 sub rnd 2 mult .startloc add dup * .tieloc store
1 add * .tieval store
40 .stifftie store
200 .fixlen store
*.trefxpos *.trefypos angle .setaim store
*.trefvelup .up store
*.trefveldx .dx store
0 .deltie store
stop

cond
*.state .torpedo =
*.tmemval *.keyloc * =
*.numties 0 >
start
*.tiepres .deltie store
stop

'--------------------------
'Viral and mem defence

cond
*.keyloc .startkey *.randm add !=
*.memloc .startkey *.randm add != or
*.memloc .startkey *.randm add != or
*.venval -2 != or
*.vloc .shoot != or
start
.startkey *.randm add .keyloc store
.startkey *.randm add .memloc store
.startkey *.randm add .tmemloc store
-2 .venval store
.shoot .vloc store
stop

cond
*.vtimer 0 !=
start
0 .vshoot store
stop

cond
*.repro 0 !=
*.repro 32 !=
*.repro 5 !=
'*.repro 98 !=
start
0 .repro store
stop

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

end

24
Bug reports / New bucket bug. RESOLVED 2.43.1i
« on: April 11, 2008, 03:00:39 PM »
I'm running a simple bot in a sim with alge minimalis, and it seems like sometimes the alge don't get removed from the bucket propperly...
Sometimes bots seemed to get stuck in a loop, and since it's a neural network I just figured something was wrong with the weights... but it seems like they where acualy seing an ghost and trying to kill it...
It doesn't take too long for some bots to get stuck, and it seems like sometimes a ghost will get cleaned up... not sure if it's my settings or a general problem... only noticed it because the bot is so simple and slow.

I was running normal F1 settings with thin fluids, started with 15 bots and 100 alge, no mutations or anything.

25
F2 bots / Spinner v1.1 (F2) (Moonfisher) 06-04-08
« on: April 06, 2008, 06:18:40 PM »
Just a better version of Spinner.
Removed poison, added safer reproduction, a litle comunication.
It's also stingy about shell now... not sure if that's actualy better...
But the speed and shots have been tweeked a litle.
It seems more clumsy now, you could probably fine tweek it and use a combo of body and refbody to determine distance to oponent... but not a big fan of tweeking, so for a rough tweek it seemed better to nudge the alge at times than to take too long getting to it. Might also benefit from powering up venom against oponents with shell if we have the energy. But I don't know most of the details about costs and powerups, so it takes time to tweek stuff.
Still trying to keep it simple. It beats the same bots as v1.0 but it seems to have better controll over the field.

Code: [Select]
'Spinner v1.1 (F2) 06-04-08
'by Moonfisher
'Added a litle comunication
'Some better repro genes
'Removed poison, less shell
'Still relies mostly on the eyes

'------------------- vars
def seteyes 50
def seteyewidth 51
def seteyespace 52
def setoffset 53

def state 54
def repspin 55


'-------------------- constants
def spineyewidth 0
def spineyespace 105
def spinoffset 140

def scaning 1


cond
*.robage 0 =
start
1 .seteyes store
.spineyewidth .seteyewidth store
.spineyespace .seteyespace store
.spinoffset .setoffset store
.scaning .state store
123 120 store
120 .memloc store
.shoot .vloc store
-2 .venval store
.shoot .ploc store
stop

cond
*.seteyes 1 =
start
*.setoffset .eye9dir store
*.setoffset *.seteyespace add .eye8dir store
*.setoffset *.seteyespace 2 mult add .eye7dir store
*.setoffset *.seteyespace 3 mult add .eye6dir store
*.setoffset *.seteyespace 4 mult add .eye5dir store
*.setoffset *.seteyespace 5 mult add .eye4dir store
*.setoffset *.seteyespace 6 mult add .eye3dir store
*.setoffset *.seteyespace 7 mult add .eye2dir store
*.setoffset *.seteyespace 8 mult add .eye1dir store
4 .focuseye store
0 .seteyes store
stop

cond
*.state .scaning =
*.eye9 0 >
*.memval 123 !=
start
*.refxpos *.refypos angle .setaim store
*.refxpos *.xpos sub abs *.refypos *.ypos sub abs pyth 5 div 30 sub 0 floor 100 ceil *.refvelup add .up store
*.refveldx .dx store
-6 .shoot store
*.nrg 30 div 20 ceil *.eye9 40 sub 0 floor sgn *.body 40 sub 0 floor sgn mult mult .shootval store
*.refxpos .out4 store
*.refypos .out5 store
stop

cond
*.eye9 0 =
*.memval 123 = or
*.out4 0 !=
*.out5 0 != or
start
0 .out4 store
0 .out5 store
stop

cond
*.state .scaning =
*.eye9 0 >
*.memval 123 !=
*.robage 5 mod 0 =
*.venom 1 >
start
-3 .shoot store
0 .shootval store
stop

cond
*.state .scaning =
*.eye9 0 =
*.robage 20 mod 16 >=
*.robage 200 >= or
start
*.aim 35 add .setaim store
stop

cond
*.state .scaning =
*.eye9 0 =
*.robage 20 mod 16 <
*.robage 200 <
start
20 .dx store
stop

cond
*.state .scaning =
*.eye9 0 !=
*.memval 123 =
*.robage 20 mod 16 >=
*.robage 200 >= or
start
*.aim 35 add .setaim store
stop

cond
*.state .scaning =
*.eye9 0 !=
*.memval 123 =
*.robage 20 mod 16 <
*.robage 200 <
start
20 .dx store
stop

cond
*.robage 100 >=
*.robage 1000 <
*.eye9 0 =
*.robage 20 mod 10 >
start
20 .dx store
stop

cond
*.state .scaning =
*.eye9 0 =
*.robage 20 >
*.memval 123 = and or
*.eye1 0 >
start
*.aim *.eye1dir add .setaim store
stop

cond
*.state .scaning =
*.eye9 0 =
*.robage 20 >
*.memval 123 = and or
*.eye2 0 >
start
*.aim *.eye2dir add .setaim store
stop

cond
*.state .scaning =
*.eye9 0 =
*.robage 20 >
*.memval 123 = and or
*.eye3 0 >
start
*.aim *.eye3dir add .setaim store
stop

cond
*.state .scaning =
*.eye9 0 =
*.robage 20 >
*.memval 123 = and or
*.eye4 0 >
start
*.aim *.eye4dir add .setaim store
stop

cond
*.state .scaning =
*.eye9 0 =
*.robage 20 >
*.memval 123 = and or
*.eye5 0 >
start
*.aim *.eye5dir add .setaim store
stop

cond
*.state .scaning =
*.eye9 0 =
*.robage 20 >
*.memval 123 = and or
*.eye6 0 >
start
*.aim *.eye6dir add .setaim store
stop

cond
*.state .scaning =
*.eye9 0 =
*.robage 20 >
*.memval 123 = and or
*.eye7 0 >
start
*.aim *.eye7dir add .setaim store
stop

cond
*.state .scaning =
*.eye9 0 =
*.robage 20 >
*.memval 123 = and or
*.eye8 0 >
start
*.aim *.eye8dir add .setaim store
stop

cond
*.eye9 0 >
*.memval 123 =
*.in4 0 !=
*.in5 0 != or
*.in4 *.in5 dist 1000 <
start
*.in4 *.in5 angle .setaim store
20 .dx store
stop

cond
*.eye9 0 =
*.memval 123 = or
*.nrg 3100 > or
*.nrg 300 >
*.body 100 > and
*.totalmyspecies 70 < and
*.nrg 500 >
*.body 100 > and
*.totalmyspecies 70 >= and or
*.repspin 0 =
start
*.robage 1 add .repspin store
stop

cond
*.repspin 1 add *.robage =
start
*.aim 511 add .setaim store
0 .up store
0 .dx store
stop

cond
*.repspin 2 add *.robage =
start
*.aim 341 add .setaim store
0 .up store
0 .dx store
stop

cond
*.repspin 3 add *.robage =
start
*.aim 511 add .setaim store
0 .up store
0 .dx store
stop

cond
*.repspin 15 add *.robage <
*.repspin 0 !=
start
0 .repspin store
stop

cond
'*.eye9 0 =
*.nrg 300 >
*.body 100 >
*.repspin 1 add *.robage =
*.repspin 2 add *.robage = or
*.totalmyspecies 70 <
start
32 .repro store
stop

cond
'*.eye9 0 =
*.nrg 500 >
*.body 100 >
*.repspin 1 add *.robage =
*.repspin 2 add *.robage = or
*.totalmyspecies 70 >=
start
32 .repro store
stop

cond
*.nrg 200 >
*.body 500 <
*.totalmyspecies 70 > or
start
100 .strbody store
stop

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

cond
*.shell 50 <
*.nrg 50 >
start
20 .mkshell store
stop

cond
*.shell 200 <
*.nrg 200 >
*.body 120 >
start
50 .mkshell store
stop

cond
*.venom 50 <
*.nrg 20 >
start
10 .strvenom store
stop

cond
*.shell 300 <
*.nrg 200 >
*.body 100 >
*.eye9 0 >
*.refeye *.myeye !=
*.refeye 0 !=
*.refshoot 0 != or
*.refshell 0 != or
*.refpoison 0 != or
*.refvenom 0 != or
*.refvelscalar 20 > or
start
300 *.shell sub .mkshell store
stop

cond
*.shflav 0 !=
*.shflav -2 !=
*.shflav -3 !=
*.nrg 80 >
*.venom 5 >
start
*.shang .setaim store
-3 .shoot store
10 .shootval store
stop

cond
*.shflav 0 !=
*.shflav -2 !=
*.shflav -3 !=
*.nrg 80 >
*.venom 5 <=
start
*.shang .setaim store
.setaim .shoot store
*.refaim 682 add .shootval store
stop

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

cond
*.pain 60 >
*.shflav 0 !=
*.shflav -2 !=
start
*.maxvel .dx store
stop

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

cond
*.numties 0 >
start
*.tiepres .tienum store
.tieval .tieloc store
1000 .tieval store
*.tiepres .deltie store
stop

cond
*.vtimer 0 !=
start
0 .vshoot store
stop

cond
*.repro 0 !=
*.repro 32 !=
*.repro 98 !=
start
0 .repro store
stop

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

end

26
F2 bots / Spinner (F2) (Moonfisher) 04-04-08
« on: April 04, 2008, 08:24:42 AM »
Was making a testbot to try out some new eyes for Lovebot, and it enden up as a league bot in itself:P
It beats the old F1 league, probably won't beat a lot of the new F1 bots.
Dunno how it does in F2, still can't download the league zip file and haven't spendt the time fetching all those bots manualy.
But it beats Multiply4 and the F2 bots in the F1 top 30...
Nothing fancy in here, only the eyes. Some basic shell and some more or less clever poison and venom.
Virtualy no tie and virus defences, just enough to make it through the old F1 league.

Code: [Select]
'Spinner (F2) 04-04-08
'by Moonfisher
'Originaly a test bot for a new eye setup.
'It worked so well I enden up making an F2 league bot from it.
'Nothing fancy in here except the eyes.

'------------------- vars
def seteyes 50
def seteyewidth 51
def seteyespace 52
def setoffset 53

def state 54


'-------------------- constants
def spineyewidth 0
def spineyespace 105
def spinoffset 140

def scaning 1


cond
*.robage 0 =
start
1 .seteyes store
.spineyewidth .seteyewidth store
.spineyespace .seteyespace store
.spinoffset .setoffset store
.scaning .state store
123 120 store
120 .memloc store
.shoot .vloc store
-2 .venval store
.shoot .ploc store
stop

cond
*.seteyes 1 =
start
*.setoffset .eye9dir store
*.setoffset *.seteyespace add .eye8dir store
*.setoffset *.seteyespace 2 mult add .eye7dir store
*.setoffset *.seteyespace 3 mult add .eye6dir store
*.setoffset *.seteyespace 4 mult add .eye5dir store
*.setoffset *.seteyespace 5 mult add .eye4dir store
*.setoffset *.seteyespace 6 mult add .eye3dir store
*.setoffset *.seteyespace 7 mult add .eye2dir store
*.setoffset *.seteyespace 8 mult add .eye1dir store
4 .focuseye store
0 .seteyes store
stop

cond
*.state .scaning =
*.eye9 0 >
*.memval 123 !=
start
*.refxpos *.refypos angle .setaim store
*.refxpos *.xpos sub abs *.refypos *.ypos sub abs pyth 10 div 20 sub 0 floor *.refvelup add .up store
*.refveldx .dx store
-6 .shoot store
*.nrg 20 div 10 ceil *.eye9 30 sub 0 floor sgn *.body 70 sub 0 floor sgn mult mult .shootval store
stop

cond
*.state .scaning =
*.eye9 0 >
*.memval 123 !=
*.robage 5 mod 0 =
*.venom 1 >
start
-3 .shoot store
0 .shootval store
stop

cond
*.state .scaning =
*.eye9 0 =
*.robage 20 mod 16 >=
*.robage 200 >= or
start
*.aim 35 add .setaim store
stop

cond
*.state .scaning =
*.eye9 0 =
*.robage 20 mod 16 <
*.robage 200 <
start
20 .dx store
stop

cond
*.state .scaning =
*.eye9 0 !=
*.memval 123 =
*.robage 20 mod 16 >=
*.robage 200 >= or
start
*.aim 35 add .setaim store
stop

cond
*.state .scaning =
*.eye9 0 !=
*.memval 123 =
*.robage 20 mod 16 <
*.robage 200 <
start
20 .dx store
stop

cond
*.robage 100 >=
*.robage 1000 <
*.eye9 0 =
*.robage 20 mod 10 >
start
20 .dx store
stop

cond
*.state .scaning =
*.eye9 0 =
*.robage 20 >
*.memval 123 = and or
*.eye1 0 >
start
*.aim *.eye1dir add .setaim store
stop

cond
*.state .scaning =
*.eye9 0 =
*.robage 20 >
*.memval 123 = and or
*.eye2 0 >
start
*.aim *.eye2dir add .setaim store
stop

cond
*.state .scaning =
*.eye9 0 =
*.robage 20 >
*.memval 123 = and or
*.eye3 0 >
start
*.aim *.eye3dir add .setaim store
stop

cond
*.state .scaning =
*.eye9 0 =
*.robage 20 >
*.memval 123 = and or
*.eye4 0 >
start
*.aim *.eye4dir add .setaim store
stop

cond
*.state .scaning =
*.eye9 0 =
*.robage 20 >
*.memval 123 = and or
*.eye5 0 >
start
*.aim *.eye5dir add .setaim store
stop

cond
*.state .scaning =
*.eye9 0 =
*.robage 20 >
*.memval 123 = and or
*.eye6 0 >
start
*.aim *.eye6dir add .setaim store
stop

cond
*.state .scaning =
*.eye9 0 =
*.robage 20 >
*.memval 123 = and or
*.eye7 0 >
start
*.aim *.eye7dir add .setaim store
stop

cond
*.state .scaning =
*.eye9 0 =
*.robage 20 >
*.memval 123 = and or
*.eye8 0 >
start
*.aim *.eye8dir add .setaim store
stop

cond
*.eye9 0 =
*.nrg 300 >
*.body 100 >
*.totalmyspecies 70 <
start
51 .repro store
stop

cond
*.eye9 0 =
*.nrg 500 >
*.body 100 >
*.totalmyspecies 70 >=
start
51 .repro store
stop

cond
*.nrg 200 >
*.body 500 <
*.totalmyspecies 70 > or
start
100 .strbody store
stop

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

cond
*.shell 50 <
*.nrg 50 >
start
20 .mkshell store
stop

cond
*.venom 50 <
*.nrg 20 >
start
10 .strvenom store
stop

cond
*.shell 200 <
*.nrg 200 >
*.eye9 0 >
*.refeye *.myeye !=
start
200 *.shell sub .mkshell store
stop

cond
*.shflav -1 =
*.nrg 80 >
*.poison 0 =
start
50 .strpoison store
stop

cond
*.shflav 0 !=
*.shflav -2 !=
*.shflav -3 !=
*.nrg 80 >
*.venom 5 >
start
*.shang .setaim store
-3 .shoot store
10 .shootval store
stop

cond
*.shflav 0 !=
*.shflav -2 !=
*.shflav -3 !=
*.nrg 80 >
*.venom 5 <=
start
*.shang .setaim store
.setaim .shoot store
*.refaim 682 add .shootval store
stop

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

cond
*.numties 0 >
start
*.tiepres .tienum store
.tieval .tieloc store
1000 .tieval store
*.tiepres .deltie store
stop

cond
*.vtimer 0 !=
start
0 .vshoot store
stop

cond
*.repro 0 !=
*.repro 51 !=
start
0 .repro store
stop

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

27
Bug reports / Invisibility RESOLVED 2.43.1g
« on: April 03, 2008, 06:00:54 PM »
I was running a bot to test some new eyes for spinning...
And I noticed it's sometimes unable to see an alge for a period of time.
I tryed running other strong league bots, and they seem to have the same problem.
But it's not just alge, tryed running the bot against Bubbles and one of them stayed behind not getting killed.
If I look at the bot the eyes pointing at the "invisible" bot are empty (But other eyes work as intended), if I look at the "invisible" bot the eyes seem to work but it doesn't engage anthing.
Not sure how this is happening...

28
F2 bots / LoveBot v1.1 (F2) (Moonfisher) - 03-04-08
« on: April 02, 2008, 09:13:38 PM »
Second version of LoveBot, beter conspec, beter for combat, still doesn't take in new genes yet, and needs work ont he eyes and spinning and stuff.
But it's a good start.

Code: [Select]
'Lovebot (F2) : 03-04-08
'Make love not war !
'v0.02
'Would probably be more effective in combat as a single gene
'But this way is more fun.
'Sometimes causes a crash in 2.43.1e.
'May rarely cause a crash in 2.43.1f

def keyval 55
def repspin 56
def keyloc 110

def birthkey 971
def birthx 972
def birthy 973

'Origkey must be first, slavekey must be last, interval must be 6
def origkey 1234
def algekey 1240
def slavekey 1246

cond
*.robage 2 <
*.nrg 3000 %=
*.nrg 2980 >
*.body 1000 =
*.totalmyspecies 6 <
*.totalbots 21 <
start
.origkey .birthkey store
.origkey .keyval store
stop

cond
*.robage 0 =
start
*.tiepres .deltie store
.sexrepro .vloc store
99 .venval store
100 .eye5width store
.shoot .memloc store
stop

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

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

cond
*.body 100 <
*.nrg 500 >
start
100 .strbody store
stop

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

cond
*.body 20 >
*.nrg 50 <
*.keyval .origkey =
start
100 .fdbody store
stop

cond
*.venom 50 <
*.nrg 100 >
start
10 .strvenom store
stop

cond
*.shell 200 <
*.nrg 200 >
start
10 .mkshell store
stop

cond
*.shell 30 <
*.nrg 100 >
start
60 *.shell sub .mkshell store
stop

cond
*.shell 500 <
*.nrg 1000 >
*.robage 20 >
*.keyval .algekey =
start
500 *.shell sub .mkshell store
stop


'------------------------------------------- excalibur eyes

cond
'*.memval *.refage .origkey add 3 sub <=
'*.memval *.refage .slavekey add 3 add >= or
*.eye5 0 =
*.eye1 *.eye9 !=
*.eye1 *.eye5 >
*.eye9 *.eye5 > or
start
'*.eye1 *.eye9 sub sgn 139 mult .aimsx store
*.eye1 *.eye9 sub sgn 139 mult *.aim sub .setaim store
stop

cond
'*.memval *.refage .origkey add 3 sub <=
'*.memval *.refage .slavekey add 3 add >= or
*.eye5 0 =
*.eye2 *.eye8 !=
*.eye2 *.eye5 >
*.eye8 *.eye5 > or
start
'*.eye2 *.eye8 sub sgn 104 mult .aimsx store
*.eye2 *.eye8 sub sgn 104 mult *.aim sub .setaim store
stop

cond
'*.memval *.refage .origkey add 3 sub <=
'*.memval *.refage .slavekey add 3 add >= or
*.eye5 0 =
*.eye7 *.eye3 !=
*.eye3 *.eye5 >
*.eye7 *.eye5 > or
start
'*.eye3 *.eye7 sub sgn 70 mult .aimsx store
*.eye3 *.eye7 sub sgn 70 mult *.aim sub .setaim store
stop

cond
'*.memval *.refage .origkey add 3 sub <=
'*.memval *.refage .slavekey add 3 add >= or
*.eye5 0 =
*.eye6 *.eye4 !=
*.eye4 *.eye5 >
*.eye6 *.eye5 > or
start
'*.eye4 *.eye6 sub sgn 35 mult .aimsx store
*.eye4 *.eye6 sub sgn 35 mult *.aim sub .setaim store
stop

'-------------------------------



cond
*.eyef 0 =
*.robage 20 mod 10 <
start
20 .up store

 -2
 .shoot
 *.robage 5 sub sqr dup div
 *.keyval .origkey sub dup div
 mult
 *.keyval .algekey sub dup div
 mult
 *.keyval .slavekey sub dup div
 mult
 mult
 store

 31999
 .shootval
 *.robage 5 sub sqr dup div
 *.keyval .origkey sub dup div
 mult
 *.keyval .algekey sub dup div
 mult
 *.keyval .slavekey sub dup div
 mult
 mult
 store

stop

cond
*.eyef 0 =
*.robage 20 mod 10 >=
start
*.aim 120 add .setaim store

 -2
 .shoot
 *.robage 5 sub sqr dup div
 *.keyval .origkey sub dup div
 mult
 *.keyval .algekey sub dup div
 mult
 *.keyval .slavekey sub dup div
 mult
 mult
 store

 31999
 .shootval
 *.robage 5 sub sqr dup div
 *.keyval .origkey sub dup div
 mult
 *.keyval .algekey sub dup div
 mult
 *.keyval .slavekey sub dup div
 mult
 mult
 store

stop

cond
*.memval *.refage .origkey add 3 sub >
*.memval *.refage .slavekey add 3 add <
*.robage 20 mod 10 <
start
10 .dx store
stop

cond
*.memval *.refage .origkey add 3 sub >
*.memval *.refage .slavekey add 3 add <
*.robage 20 mod 10 >=
start
*.aim 120 add .setaim store
stop


cond
*.memval *.refage .origkey add 3 sub <=
*.memval *.refage .slavekey add 3 add >= or
*.eyef 0 >
start
*.refxpos *.refypos angle .setaim store
*.refxpos *.xpos sub abs *.refypos *.ypos sub abs pyth 10 div 20 sub 0 floor *.refvelup add .up store
*.refveldx .dx store
*.refxpos .birthx store
*.refypos .birthy store
stop

cond
*.shoot -2 =
start
*.refveldx 30 add .dx store
stop

cond
*.poisoned 0 !=
start
0 .up store
*.refvelup 50 add .dn store
stop

cond
*.pain 50 >
*.shflav -2 !=
*.shflav 0 !=
start
*.pain .dx store
stop

cond
*.body 100 >=
*.nrg 500 >=
*.repspin 0 =
start
1 .repspin store
stop

cond
*.body 100 >=
*.nrg 500 >=
*.repspin 0 >
*.repspin 6 <
start
*.aim 341 add .setaim store
52 .repro store
.repspin inc
stop

cond
*.repspin 5 >
*.robage 20 mod 0 =
start
0 .repspin store
stop

cond
*.robage 1 =
start
*.birthx *.birthy angle .setaim store

 -2
 .shoot
 *.robage 5 sub sqr dup div
 *.keyval .origkey sub dup div
 mult
 *.keyval .algekey sub dup div
 mult
 *.keyval .slavekey sub dup div
 mult
 mult
 store

 31999
 .shootval
 *.robage 5 sub sqr dup div
 *.keyval .origkey sub dup div
 mult
 *.keyval .algekey sub dup div
 mult
 *.keyval .slavekey sub dup div
 mult
 mult
 store

stop

cond
*.robage 6 <
*.robage 1 >
*.memval *.refage .origkey add 3 sub >
*.memval *.refage .slavekey add 3 add < and
*.eyef 0 = or
start
*.aim 341 add .setaim store
stop

cond
*.shflav -2 =
*.keyval .origkey =
start
1 .fixpos store
stop

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

cond
*.body 300 >
start
3000 .fdbody store
stop

cond
*.memval *.refage .origkey add 3 sub <=
*.memval *.refage .slavekey add 3 add >= or
*.eyef 0 >
*.robage 3 mod 0 =
start
-3 .shoot store
0 .shootval store
stop

cond
*.memval *.refage .origkey add 3 sub <=
*.memval *.refage .slavekey add 3 add >= or
*.eyef 0 >
*.robage 3 mod 1 =
start
-8 .shoot store
0 .shootval store

 -2
 .shoot
 *.robage 5 sub sqr dup div
 *.keyval .origkey sub dup div
 mult
 *.keyval .algekey sub dup div
 mult
 *.keyval .slavekey sub dup div
 mult
 mult
 store

 31999
 .shootval
 *.robage 5 sub sqr dup div
 *.keyval .origkey sub dup div
 mult
 *.keyval .algekey sub dup div
 mult
 *.keyval .slavekey sub dup div
 mult
 mult
 store

stop

cond
*.memval *.refage .origkey add 3 sub <=
*.memval *.refage .slavekey add 3 add >= or
*.eyef 0 >
*.robage 3 mod 2 =
*.refbody 100 >
*.refnrg 300 >
*.robage 9 mod 2 =
start
.sexrepro .shoot store
99 .shootval store
stop

cond
*.memval *.refage .origkey add 3 sub <=
*.memval *.refage .slavekey add 3 add >= or
*.eyef 0 >
*.robage 3 mod 2 =
*.refbody 100 >
*.refnrg 300 >
*.robage 9 mod 5 =
start
.setaim .shoot store
*.refaim 341 add .shootval store
stop

cond
*.memval *.refage .origkey add 3 sub <=
*.memval *.refage .slavekey add 3 add >= or
*.eyef 0 >
*.robage 3 mod 2 =
*.refbody 100 >
*.refnrg 300 >
*.robage 9 mod 8 =
start
.aimsx .shoot store
341 .shootval store
stop

cond
*.memval *.refage .origkey add 3 sub <=
*.memval *.refage .slavekey add 3 add >= or
*.refbody 1000 >
*.refnrg 1000 >
*.refshell 0 =
*.robage 300 >
*.robage 15 mod 11 >
*.eyef 0 >
*.keyval .origkey =
start
-6 .shoot store
0 .shootval store


 -2
 .shoot
 *.robage 5 sub sqr dup div
 *.keyval .origkey sub dup div
 mult
 *.keyval .algekey sub dup div
 mult
 *.keyval .slavekey sub dup div
 mult
 mult
 store

 31999
 .shootval
 *.robage 5 sub sqr dup div
 *.keyval .origkey sub dup div
 mult
 *.keyval .algekey sub dup div
 mult
 *.keyval .slavekey sub dup div
 mult
 mult
 store

stop

cond
*.memval *.refage .origkey add 3 sub <=
*.memval *.refage .slavekey add 3 add >= or
*.eyef 0 >
*.refshoot 0 =
*.refeye 0 =
*.refshell 0 =
*.refpoison 0 =
*.refvenom 0 =
*.memval 0 =
*.keyval .origkey =
*.robage 5 >
start
-1 .shoot store
*.nrg 20 div 10 ceil .shootval store
stop

cond
*.memval *.refage .algekey add 3 sub >
*.memval *.refage .algekey add 3 add <
*.refbody 1000 >
*.refnrg 1000 >
*.refshell 0 =
*.robage 300 >
*.eyef 0 >
*.keyval .origkey =
*.robage 5 >
start
-6 .shoot store
0 .shootval store
stop


cond
*.numties 0 >
*.robage 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
*.tiepres .deltie store
stop

cond
*.strbody 0 <
start
0 .strbody store

 -2
 .shoot
 *.robage 5 sub sqr dup div
 *.keyval .origkey sub dup div
 mult
 *.keyval .algekey sub dup div
 mult
 *.keyval .slavekey sub dup div
 mult
 mult
 store

 31999
 .shootval
 *.robage 5 sub sqr dup div
 *.keyval .origkey sub dup div
 mult
 *.keyval .algekey sub dup div
 mult
 *.keyval .slavekey sub dup div
 mult
 mult
 store

stop

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

cond
*.mkvirus 0 !=
start
*.mkvirus .delgene store
stop

cond
*.vtimer 0 !=
start
1 .vshoot store
stop


cond
start


'-----------------------------------------------------------------------------

 *.birthkey
 .keyval
 *.robage 0 sub dup div 1 sub abs
 mult
 store

 .keyloc 1 rnd add
 .memloc
 *.robage 0 sub dup div 1 sub abs
 mult
 store

 .keyloc 1 rnd add
 .tmemloc
 *.robage 0 sub dup div 1 sub abs
 mult
 store


'-----------------------------------------------------------------------------



 .slavekey
 .keyval
 *.robage 2 sub sqr dup div
 *.keyval .origkey sub dup div
 mult
 *.keyval .slavekey sub dup div
 mult
 *.nrg 1000 sub -1 mult sqr dup div
 mult
 mult
 store


'-----------------------------------------------------------------------------

 .algekey
 .keyval
 *.robage 2 sub sqr dup div
 *.keyval .origkey sub dup div
 mult
 *.keyval .algekey sub dup div
 mult
 *.nrg 1000 sub sqr dup div
 mult
 mult
 store


'-----------------------------------------------------------------------------


 100
 .up
 *.shflav -2 sub dup div 1 sub abs
 *.keyval .origkey sub dup div
 mult
 mult
 store

'-----------------------------------------------------------------------------

 0
 .shoot
 *.keyval .origkey sub dup div
 *.shoot -1 sub dup div 1 sub abs
 *.shoot -6 sub dup div 1 sub abs
 add sgn
 mult
 mult
 store

 0
 .shootval
 *.keyval .origkey sub dup div
 *.shoot -1 sub dup div 1 sub abs
 *.shoot -6 sub dup div 1 sub abs
 add sgn
 mult
 mult
 store



'-----------------------------------------------------------------------------


 0
 .shoot
 *.memval *.refage .origkey add 3 sub sub sqr dup div
 *.memval *.refage .slavekey add 3 add sub -1 mult sqr dup div
 mult
 mult
 store


 0
 .shootval
 *.memval *.refage .origkey add 3 sub sub sqr dup div
 *.memval *.refage .slavekey add 3 add sub -1 mult sqr dup div
 mult
 mult
 store


'-----------------------------------------------------------------------------


 -2
 .shoot
 *.keyval .origkey sub dup div
 *.robage 3000 sub sqr dup div
 mult
 mult
 store


 31999
 .shootval
 *.keyval .origkey sub dup div
 *.robage 3000 sub sqr dup div
 mult
 mult
 store


'-----------------------------------------------------------------------------


 *.refxpos *.refypos angle
 .setaim
 *.memval *.refage .origkey add 3 sub sub sqr dup div
 *.memval *.refage .origkey add 3 add sub -1 mult sqr dup div
 mult
 *.keyval .slavekey sub dup div 1 sub abs
 *.robage 3000 sub sqr dup div
 mult
 *.keyval .algekey sub dup div 1 sub abs
 add sgn
 mult
 mult
 store


 *.refxpos *.xpos sub abs *.refypos *.ypos sub abs pyth 10 div 20 sub 0 floor *.refvelup add
 .up
 *.memval *.refage .origkey add 3 sub sub sqr dup div
 *.memval *.refage .origkey add 3 add sub -1 mult sqr dup div
 mult
 *.keyval .slavekey sub dup div 1 sub abs
 *.robage 3000 sub sqr dup div
 mult
 *.keyval .algekey sub dup div 1 sub abs
 add sgn
 mult
 mult
 store


 *.refveldx
 .dx
 *.memval *.refage .origkey add 3 sub sub sqr dup div
 *.memval *.refage .origkey add 3 add sub -1 mult sqr dup div
 mult
 *.keyval .slavekey sub dup div 1 sub abs
 *.robage 3000 sub sqr dup div
 mult
 *.keyval .algekey sub dup div 1 sub abs
 add sgn
 mult
 mult
 store


 0
 .dn
 *.memval *.refage .origkey add 3 sub sub sqr dup div
 *.memval *.refage .origkey add 3 add sub -1 mult sqr dup div
 mult
 *.keyval .slavekey sub dup div 1 sub abs
 *.robage 3000 sub sqr dup div
 mult
 *.keyval .algekey sub dup div 1 sub abs
 add sgn
 mult
 mult
 store


 0
 .sx
 *.memval *.refage .origkey add 3 sub sub sqr dup div
 *.memval *.refage .origkey add 3 add sub -1 mult sqr dup div
 mult
 *.keyval .slavekey sub dup div 1 sub abs
 *.robage 3000 sub sqr dup div
 mult
 *.keyval .algekey sub dup div 1 sub abs
 add sgn
 mult
 mult
 store


 0
 .aimsx
 *.memval *.refage .origkey add 3 sub sub sqr dup div
 *.memval *.refage .origkey add 3 add sub -1 mult sqr dup div
 mult
 *.keyval .slavekey sub dup div 1 sub abs
 *.robage 3000 sub sqr dup div
 mult
 *.keyval .algekey sub dup div 1 sub abs
 add sgn
 mult
 mult
 store


 0
 .aimdx
 *.memval *.refage .origkey add 3 sub sub sqr dup div
 *.memval *.refage .origkey add 3 add sub -1 mult sqr dup div
 mult
 *.keyval .slavekey sub dup div 1 sub abs
 *.robage 3000 sub sqr dup div
 mult
 *.keyval .algekey sub dup div 1 sub abs
 add sgn
 mult
 mult
 store


 -2
 .shoot
 *.memval *.refage .origkey add 3 sub sub sqr dup div
 *.memval *.refage .origkey add 3 add sub -1 mult sqr dup div
 mult
 *.keyval .slavekey sub dup div 1 sub abs
 *.robage 3000 sub sqr dup div
 mult
 *.keyval .algekey sub dup div 1 sub abs
 add sgn
 mult
 mult
 store


 *.eyef 50 sub 0 floor 50 ceil
 .shootval
 *.memval *.refage .origkey add 3 sub sub sqr dup div
 *.memval *.refage .origkey add 3 add sub -1 mult sqr dup div
 mult
 *.keyval .slavekey sub dup div 1 sub abs
 *.robage 3000 sub sqr dup div
 mult
 *.keyval .algekey sub dup div 1 sub abs
 add sgn
 mult
 mult
 store


'-----------------------------------------------------------------------------


 *.robage *.keyval add
 .keyloc
 *.genes *.thisgene sub dup div 1 sub abs
 mult
 store

 *.robage *.keyval add
 .keyloc 1 add
 *.genes *.thisgene sub dup div 1 sub abs
 mult
 store


'-----------------------------------------------------------------------------


 *.thisgenes 1 add
 .delgene
 *.genes *.thisgene sub sqr dup div
 mult
 store


'-----------------------------------------------------------------------------

stop

end

29
Bug reports / Subscript out of.... (Again) OPEN
« on: April 02, 2008, 07:01:33 AM »
So I'm running lovebot again, against Callidus, while making it's way through the F1 league... not sure if sexrepro caused it, wasn't realy during the orgy, but I'm not sure it was completely done reproducing with everyone. I would still suspect it's caused by sexrepro though, still took a long time for it to happen though, so the error is far from frequent.
Not sure if it's related, but the error came just as I was pushing the autowin button.
Also it seems like autowin awards 2 wins and not just one. Not sure if it always does, but I've definately seen it happen fairly often.

30
Bug reports / Subscript out of range. RESOLVED 2.43.1f
« on: March 30, 2008, 12:41:37 PM »
I get the error while running LoveBot against Multiply4 or Excaibur and probably any bot realy.
Lovebot basicaly rapes the other bots using -8 shots and sexrepro info shots and sexrepro venom, and at some point the crash occurs.
The crash always occurs in the first stage while the orgy is occuring. Once setled it doesn't happen, so I'm almost sure it's related to sexrepro.
Lovebot doesn't do much, so it shouldn't be too hard to narrow it down, you're lucky if you can run 5 fights without a crash.

Pages: 1 [2] 3